構成:
OSX 10.10.5 XCODE 7.0 SDL 1.2.15
再現方法:
readme.txt で説明されているように、SDL.Framework を /Library/Frameworks にコピーしました。
XCODE テンプレート > ビルド設定 > フレームワークで /Library/Frameworks としてパスを検索
次のように、main.cpp ファイルに SDL フレームワークを含めました。
#include <SDL/SDL.h>
次に、コンパイルをブロックするクラス main の二重宣言が原因で、XCODE で SDL Framework をロードするときに同じ問題が発生しました。
これはエラーメッセージです:
Undefined symbols for architecture x86_64:
"_main", referenced from:
implicit entry/start for main executable
(maybe you meant: _SDL_main)
これは私がそれをどのように解決したかです:
SDL.hに次のファイルがすべて含まれていることを確認しました。
#include "SDL_main.h"
#include "SDL_stdinc.h"
#include "SDL_audio.h"
#include "SDL_cdrom.h"
#include "SDL_cpuinfo.h"
#include "SDL_endian.h"
#include "SDL_error.h"
#include "SDL_events.h"
#include "SDL_loadso.h"
#include "SDL_mutex.h"
#include "SDL_rwops.h"
#include "SDL_thread.h"
#include "SDL_timer.h"
#include "SDL_video.h"
#include "SDL_version.h"
#include "begin_code.h"
それらの1つはSDL_main.hで、そのファイルには次のように表示されます。
#define main SDL_main
この行は、main.cpp のクラス main と競合します。SDL_main.h でその行にコメントするか、SDL.h の #include "SDL_main.h" 行にコメントすると、問題が解決します。私はC++の初心者です(何年も前に大学で学んだばかりです)が、他の言語から、ライブラリを「ハッキング」することは非常に悪い習慣であることを知っています...ただし、MAXOSXとの特定の互換性の問題のようです.私は本当にXCODEを使いたい...
私は学習過程にあるので、修正してコメントし、はいまたはいいえを正当化してください.
乾杯!