我正在使用Stephen Kochan的书学习objective-c和XCode。对于其中一个分配,我需要从命令行实现AddressBook查找功能。我使用了之前项目中的两个类,添加了文件并且没有复制。所有在XCode中构建都很好,但是当我在命令行发出以下命令时:
clang -fobjc-arc -framework Foundation main.m -o ch19
我收到错误:
Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_AddresBook", referenced from: objc-class-ref in cc-bx2cgt.o "_OBJC_CLASS_$_AddressCard", referenced from: objc-class-ref in cc-bx2cgt.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
在AddresBook中没有拼写错误,我的班级名称有一个" s"。我尝试从我的项目中删除文件(AddresBook.h和.m和AddressCard.h和.m),添加和不复制。在XCode中构建和运行应用程序就可以了。
我怎样才能清除"输出引用并再次添加它们,以便我可以从命令行编译它?
谢谢。
答案 0 :(得分:2)
您需要添加其他文件对象代码。
clang -fobjc-arc -framework Foundation main.m AddressBook.m -o ch19
或将它们编译为目标文件,然后将它们链接起来。
如果你想在命令行上这样做,你也应该使用xcodebuild。