XCode 6.1缺lessextern库文件中所需的体系结构X86_64

尝试使用外部库时遇到问题:我无法编译项目,因为它会抛出exception,如下所示。

ld:warning:忽略文件/Users/renaudcousin/Documents/XCode/WORK/StimShopPOC/StimShopPOC/libStimshop_SDK.a,缺less文件/Users/renaudcousin/Documents/XCode/WORK/StimShopPOC/StimShopPOC/libStimshop_SDK.a中所需的体系结构x86_64 3片)架构x86_64的未定义符号:“_OBJC_CLASS _ $ _ St​​imshopSDK”,引用自:ViewController.o中的objc-class-ref ld:找不到架构x86_64的符号clang:error:linker命令失败,退出代码1使用-v来查看调用)

我尝试了很多解决scheme(但是对于XCode 5.1而不是解释清楚),没有任何改变…

我还发现这个主题XCode 6.1缺less必要的架构X86_64在文件中完全对应于我的问题,当用lipo -info命令查看我的lib的体系结构时,它似乎缺lessi386x86_64 。 我怎么能把它们添加到我的库架构来编译?

这意味着.a库不包含x86_64体系结构(您可以运行lipo -info /path/to/your/lib.a来validation它)。 如果你没有库的源代码,你必须修改你自己的项目。 在构build设置中,将valid architectures更改为armv7i386 ,或将Architectures更改为armv7 。 然而,根据苹果的声明,这样做,你的项目将不会被编译到arm64架构,这是在2015年2月以后上传到App Store所必需的。

如果你的库不包含x86_64体系结构,它可能也不包含arm64。 所以你应该避免使用旧的库。

如果一个库没有X86_64体系结构,那么如果你已经select了一个连接的设备而不是一个用于构build目标的模拟器,就可以构build它。

基本上,你仍然可以build立和发展,但你不能使用模拟器。

点击你的项目>build立设置>体系结构。 更改体系结构为armv7和删除其他像armv6等 ,然后它将工作: – 图像需要更改的地方

在构buildlibStimshop_SDK.a的项目中,确保“架构”设置设置为$(ARCHS_STANDARD),并且在编译器设置中包含64位设置。 请确保“有效架构”设置也包括64位。