我正在尝试编译simple project(程序main.m
和库TTTdictionary.m
),但它给了我这个错误:
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_NSString", referenced from:
objc-class-ref in main-dba0a1.o
"_OBJC_CLASS_$_TTTDictionary", referenced from:
objc-class-ref in main-dba0a1.o
"_objc_autoreleasePoolPop", referenced from:
_main in main-dba0a1.o
"_objc_autoreleasePoolPush", referenced from:
_main in main-dba0a1.o
"_objc_enumerationMutation", referenced from:
_GetActiveDictionaryNames in main-dba0a1.o
_main in main-dba0a1.o
"_objc_msgSend", referenced from:
_GetDictionaryNameFromBundlePath in main-dba0a1.o
_GetActiveDictionaryNames in main-dba0a1.o
_main in main-dba0a1.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
当我尝试编译./example/文件夹中的main.m文件时,会出现类似的错误消息。我把它们放在同一个文件夹中,我再次出现symbol(s) not found for architecture x86_64
错误。
我做错了什么?终端中的命令是clang -framework CoreServices main.m -o main
。
答案 0 :(得分:0)
它没有找到“main”,这意味着它不知道你正在编译库而不是可执行文件。将-dynamiclib添加到您的clang选项中并修复该选项。
其他缺少的函数是未记录的CoreServices函数。添加-framework CoreServices来修复这些问题。
然后你只有警告。 :)