我在尝试使用外部库时遇到问题:我无法编译项目,因为它会抛出如下异常。
ld: warning: ignoring file /Users/renaudcousin/Documents/XCode/WORK/StimShopPOC/StimShopPOC/libStimshop_SDK.a, missing required architecture x86_64 in file /Users/renaudcousin/Documents/XCode/WORK/StimShopPOC/StimShopPOC/libStimshop_SDK.a (3 slices) Undefined symbols for architecture x86_64: "_OBJC_CLASS_$_StimshopSDK", referenced from: objc-class-ref in ViewController.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)`
我尝试了很多在 stackoverflow 上找到的解决方案(但对于 XCode 5.1 并没有很好地解释)没有任何改变......
我也找到了这个话题XCode 6.1 Missing required architecture X86_64 in file完全符合我的问题
当使用 lipo -info
命令查看我的库架构时,它似乎缺少 i386
和 x86_64
。我怎样才能将它们添加到我的库架构中以便能够编译?
最佳答案
这意味着您的 .a 库不包含 x86_64 架构(您可以运行 lipo -info/path/to/your/lib.a
来验证它)。如果你没有库的源代码,你必须修改自己的项目。在build设置中,将 valid architectures
更改为 armv7
和 i386
,或者将 Architectures
更改为 armv7
而已。但是,如果这样做,您的项目将不会编译为 arm64 架构,根据 Apple 的公告,这是 2015 年 2 月之后上传到 App Store 时所必需的。
如果您的库不包含 x86_64 架构,它很可能也不包含 arm64。所以你应该避免使用旧的库。
关于ios - XCode 6.1 外部库文件中缺少所需的体系结构 X86_64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27185093/