私はMac Mini、2012年後半(最新)、64ビット、Intel Core i7 2.3 gHz HyperThreading x86_64、または私のコンピューターで実行しています。私はC++を使用しているため、Xcodeのヘルプ(私が好む)はさらにまばらであるため、当面はCode::blocksも使用しています。そうは言っても、選択するプログラミング言語は C++ であり、最終的には Objective-C++ に拡張されますが、それはまた別の機会にします。
問題は次のとおりです。私は、ソースからコンパイルした SDL 1.2.15 を使用して、何を行うのかまだよくわかりません (これはテンプレートであり、今のところゲームであるとしましょう)。私のMacで。(SDLmain.mとSDL.hを使ってみたのですが、Objective-Cのコードばかりで、インターネット上でこれらをC++でコーディングできるかどうかの良い情報が見つからなかったので断念しました。)私がコンパイルしたソースは問題なく動作するようで、Code::Blocks はチュートリアルを問題なくコンパイルでき、問題なく動作します。ただし、ゲーム テンプレートを機能させることができないようです。エラーや警告なしで正常にコンパイルされますが、リンカーは同じことをしません。今、私は本当に何がわからないld
コードをリンクしていることだけは知っています。(誰か詳しく説明したい人はいますか?) Code::Blocks がリンクステップに到達すると、次のメッセージで失敗します:
-------------- Clean: Debug in PyroLauncher ---------------
Cleaned "PyroLauncher - Debug"
-------------- Build: Debug in PyroLauncher ---------------
Compiling: App.cpp
Compiling: OnCleanup.cpp
Compiling: OnEvent.cpp
Compiling: OnInit.cpp
Compiling: OnLoop.cpp
Compiling: OnRender.cpp
Linking console executable: bin/Debug/PyroLauncher
Undefined symbols for architecture x86_64:
"_SDL_GetError", referenced from:
App::OnInit() in OnInit.o
"_SDL_Init", referenced from:
App::OnInit() in OnInit.o
"_SDL_PollEvent", referenced from:
App::OnExecute() in App.o
"_SDL_Quit", referenced from:
App::OnCleanup() in OnCleanup.o
"_SDL_SetVideoMode", referenced from:
App::OnInit() in OnInit.o
"_main", referenced from:
start in crt1.10.6.o
(maybe you meant: _SDL_main)
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings
これは私を真剣に混乱させました。私のネイティブ アーキテクチャ x86_64 では ld が見つからないことだけはわかっています。誰かが私を助けることができれば、それは大歓迎です。解決策は次のとおりだと思います(ただし、方法はわかりません。)SDLは64ビット用にコンパイルされていないため、64ビットコードに対してコンパイルすることはできません。SDL は Objective-C 用にコンパイルされているため、C++ のコードでは使用できません。私のコードは 32 ビットで、SDL は 64 ビットで、互換性がありません。