我正在尝试将此iOS lib PTImageAlbumViewController添加到我正在处理的现有项目中,并且我遇到了编译错误。有一个示例项目,它依赖于其他几个库。示例项目工作正常但我无法将其迁移到我自己的项目而没有错误。我尝试通过将项目从项目拖到项目直接从项目中提取文件,但它仍无法正常工作
我有什么遗失的吗?
架构armv7的未定义符号: “_OBJC_METACLASS _ $ _ NetworkPhotoAlbumViewController”,引自: PTImageAlbumViewController.o中的_OBJC_METACLASS _ $ _ PTImageAlbumViewController “_OBJC_CLASS _ $ _ NIPhotoAlbumScrollView”,引自: PTImageAlbumView.o中的_OBJC_CLASS _ $ _ PTImageAlbumView “_OBJC_CLASS _ $ _ NetworkPhotoAlbumViewController”,引自: PTImageAlbumViewController.o中的_OBJC_CLASS _ $ _ PTImageAlbumViewController “_NIPathForBundleResource”,引自: - PTImageAlbumViewController.o中的[PTImageAlbumViewController viewDidLoad] “_OBJC_METACLASS _ $ _ NIPhotoAlbumScrollView”,引自: PTImageAlbumView.o中的_OBJC_METACLASS _ $ _ PTImageAlbumView ld:找不到架构armv7的符号 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
答案 0 :(得分:1)
它找不到的是nimbus文件。
如果您已将nimbus和SDURLCache文件添加到项目中,那么只需要确保它们包含在您的应用程序目标中。
确保所有文件都进入您的项目并且位于正确的目标中。例如,第一个错误与NetworkPhotoAlbumViewController.m有关。该文件是否在您的项目和正确的目标中?
如果是这样,另一种可能性是,由于某种原因,它根本就没有为这种架构构建。您可以通过将DerivedData目录中的树导航到目标文件的存储位置并使用nm在目标文件中搜索缺失的符号来查找。
我机器上的示例:
cd /Users/username/Library/Developer/Xcode/DerivedData/AlbumDemo-eyqszubjyqhczreurkblqktoxjja/Build/Intermediates/AlbumDemo.build/Debug-iphonesimulator/AlbumDemo.build/Objects-normal/i386
nm NetworkPhotoAlbumViewController.o | grep _NetworkPhotoAlbumViewController
00000000 t -[NetworkPhotoAlbumViewController shutdown_NetworkPhotoAlbumViewController]
0000e0fc s -[NetworkPhotoAlbumViewController shutdown_NetworkPhotoAlbumViewController].eh
0000cde8 S _OBJC_CLASS_$_NetworkPhotoAlbumViewController
0000c9b4 S _OBJC_IVAR_$_NetworkPhotoAlbumViewController._activeRequests
0000c9bc S _OBJC_IVAR_$_NetworkPhotoAlbumViewController._highQualityImageCache
0000c9b0 S _OBJC_IVAR_$_NetworkPhotoAlbumViewController._queue
0000c9b8 S _OBJC_IVAR_$_NetworkPhotoAlbumViewController._thumbnailImageCache
0000cdfc S _OBJC_METACLASS_$_NetworkPhotoAlbumViewController
0000cfe0 s l_OBJC_$_INSTANCE_METHODS_NetworkPhotoAlbumViewController
0000d084 s l_OBJC_$_INSTANCE_VARIABLES_NetworkPhotoAlbumViewController
0000d0e0 s l_OBJC_$_PROP_LIST_NetworkPhotoAlbumViewController
0000d100 s l_OBJC_CLASS_RO_$_NetworkPhotoAlbumViewController
0000cfb8 s l_OBJC_METACLASS_RO_$_NetworkPhotoAlbumViewController
这些符号在第二列中没有“U”这一事实意味着它们是在此目标文件中定义的。您可以从the nm man page找到所有nm输出的含义。
答案 1 :(得分:0)
有时,当您创建新的Class文件时,Xcode不会将其添加到“Compiled Sources”
选择项目图标>目标>构建阶段>编译来源
然后单击+按钮添加Class * .m文件。