Я пытаюсь скомпилировать программу на C / C ++, которая использует SDL на OS X 10.6.8, но у меня возникают некоторые ошибки на этапе компоновки, код компилируется, но ему не нравится из-за некоторых отсутствующих символов. Ошибка:
Undefined symbols for architecture x86_64:
"_CFBundleGetMainBundle", referenced from:
-[SDLMain setupWorkingDirectory:] in libSDLmain.a(SDLMain.o)
_main in libSDLmain.a(SDLMain.o)
"_CFBundleCopyBundleURL", referenced from:
-[SDLMain setupWorkingDirectory:] in libSDLmain.a(SDLMain.o)
"_CFURLCreateCopyDeletingLastPathComponent", referenced from:
-[SDLMain setupWorkingDirectory:] in libSDLmain.a(SDLMain.o)
"_CFURLGetFileSystemRepresentation", referenced from:
-[SDLMain setupWorkingDirectory:] in libSDLmain.a(SDLMain.o)
"_CFRelease", referenced from:
-[SDLMain setupWorkingDirectory:] in libSDLmain.a(SDLMain.o)
...
"_OBJC_CLASS_$_NSAutoreleasePool", referenced from:
objc-class-ref in libSDLmain.a(SDLMain.o)
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
make: *** [dist/linwarrior] Error 1
Я проверил с помощью команды file
, и библиотеки либо x86_64, либо универсальные с версиями i386 и x86_64.
Есть ли способ определить, что именно вызывает эту ошибку? Способ проверки включенных библиотек или какой-либо способ помочь отладить проблему?
Я не знаю, помогает ли это, но это то, что создает мой Makefile, я удалил имена файлов, чтобы сделать его коротким, а флаг KNT - это просто то, что я использую для условий препроцессора:
/opt/local/bin/g++-mp-4.5 -DKNT=1 -Wp,-M,-MP,-MT,-MF, -std=c++0x -Wall -I source -O1 -funroll-loops -c -o
Спасибо.