如何修复编译Mach-O链接器错误
我试图添加这个iOS lib PTImageAlbumViewController到我正在工作的一个现有的项目,我得到编译错误。 有一个示例项目,并依赖于其他几个库。 该示例项目工作得很好,但我不能没有错误地将其迁移到我自己的项目。 我试图从项目中拖拽文件,直接从项目拉,但它仍然无法正常工作
有什么我失踪?
对于build筑的ARMv7未定义的符号: “_OBJC_METACLASS _ $ _ NetworkPhotoAlbumViewController”,从引用:_OBJC_METACLASS _ $ _ PTImageAlbumViewController在PTImageAlbumViewController.o “_OBJC_CLASS _ $ _ NIPhotoAlbumScrollView”,从引用:_OBJC_CLASS _ $ _ PTImageAlbumView在PTImageAlbumView.o “_OBJC_CLASS _ $ _ NetworkPhotoAlbumViewController”,从引用:_OBJC_CLASS _ $ _ PTImageAlbumViewController在PTImageAlbumViewController.o“_NIPathForBundleResource”中引用:PTImageAlbumViewController.o中的“[PTImageAlbumViewController viewDidLoad]”_OBJC_METACLASS _ $ _ NIPhotoAlbumScrollView“,引用来自:_OBJC_METACLASS _ $ _ PTImageAlbumView.o中的PTImageAlbumView ld:符号(s)未find架构armv7 clang:error :链接器命令失败,退出代码1(使用-v查看调用)
它找不到的是nimbus文件。
如果您已经将nimbus和SDURLCache文件添加到您的项目中,那么应该只是确保它们包含在您的应用程序的目标中。
确保所有文件进入您的项目,并在正确的目标。 例如,第一个错误是关于NetworkPhotoAlbumViewController.m。 该文件是否在您的项目和正确的目标?
如果是这样,另一种可能性是,由于某种原因,这根本就不是为了这个架构而build造的。 您可以通过将树从DerivedData目录导航到目标文件的存储位置,并使用nm来search目标文件中的缺失符号来查找。
我的机器上的示例:
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”的事实意味着它们是在这个目标文件中定义的。 您可以从nm man页面find所有nm输出的含义。
有时当你创build一个新的Class文件时,Xcode不会将它添加到“Compiled Sources”
selectProject Icon> Targets> Build Phases> Compile Sources
然后单击+button添加Class * .m文件。
- Swift Playground和Simulator Error(ipc / mig)服务器死亡,无法启动iOS模拟器
- Xcode 8.0命令/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc失败,退出代码1
- 如何为iOS构buildOpenCV 2.4.9?
- Xcode -dynamic没有指定静态库的错误
- 错误:“expression式的types不明确,没有更多的上下文”
- 未加载库:@ rpath / Alamofire.framework / Alamofire
- iOS XCode编译错误:无法执行命令:分割错误:11
- 编译iOS中VLC项目的错误
- XCode – EXC_BAD_ACCESS。 –