我建立我自己的静态C ++库,它是建立与设置:
- 体系结构:ARMv7的,armv7s
- 建立有效的架构,只有:无
- 支持平台:iOS版
- 有效的体系结构:ARMv7的,armv7s
图书馆项目的基础很好,我得到了某文件(我已清理build文件夹,再建项目,以确保我的设置是有效的)。
我已经加入了库(某文件)到我的iOS项目,但即使我已设置在iOS项目完全相同的设置该项目将不会编译:
- 体系结构:armv7s,ARMv7的
- 建立有效的架构,只有:是的
- 支持平台:iOS版
- 有效的体系结构:ARMv7的,armv7s
我不断收到此错误:
LD:警告:忽略文件 /Users/hidden/Library/Developer/Xcode/DerivedData/HelloWorldCppLib-fomvvtklwijvqicyhahxleiscein/Build/Products/Debug-iphoneos/libHelloWorldCppLib.a, 文件归档建这不是架构被链接(armv7s) :/Users/hidden/Library/Developer/Xcode/DerivedData/HelloWorldCppLib-fomvvtklwijvqicyhahxleiscein/Build/Products/Debug-iphoneos/libHelloWorldCppLib.a
我在想什么? 它告诉我,某文件的armv7s没有建成,但是这正是我建库与设置。
当你建立一个库必须编译它既可用于模拟器和设备,然后两个输出(.a文件)合并成1个库,然后将其链接到您的iOS项目。
我遇到了类似的问题我自己。 @graver
的解决方案肯定是有效的。
问题是,该库正在建设的armv7
而不是armv7s
。 您可以通过使用验证这个自己lipo <path/to/lib.a> -info
。
设置Build Active Architectures Only
选项No
修复该问题。
希望这可以帮助。
一个额外的注意事项是:
Build Active Architectures Only set to no
是的lib项目。
我曾与cocapods时,得到了确切的同样的错误:对我来说,解决办法是有两个型动物建立有效架构目标和豆荚。
应用目标:
Build Active Architectures Only **Yes**
荚目标
Build Active Architectures Only **No**
不幸的是所有这些条建议不要为我工作 - 的Xcode 7.3.1(7D1014),iPhone 5,但只要我删除了所有的Xcode的临时文件(+重新启动的Xcode)和重建再次成为它的工作。
它没有发生在我身上通过的CocoaPods使用Facebook的SDK(V 4.24.0)。
或清洁制设置Build Active Architectures Only
以NO
上荚没解决问题。
解决的办法是清空build目录(见构建设置/建造地点/ CONFIGURATION_BUILD_DIR)或$(CONFIGURATION_BUILD_DIR)
的Xcode变量。
我使用的5.1.1的XCode和跑进了上述问题。 解决这个问题的一种更便捷的方式似乎只是(通过菜单生成/归档)创建归档和分发。 分布式LIB文件将包含所有定义的架构。
文章来源: Error: “File was built for archive which is not the architecture being linked (armv7s)”