错误:“文件是不是被链接的体系结构的存档(armv7s)”

我已经build立了自己的静态C ++库,它是用这些设置构build的:

  • 体系结构:armv7,armv7s
  • 仅构build主动架构:否
  • 支持平台:iOS
  • 有效的体系结构:armv7,armv7s

库项目构build得很好,我得到了.a文件(我已经清理了构build文件夹,并重新构build了项目,以确保我的设置是有效的)。

我已经添加了库(.a文件)到我的iOS项目,但项目不会build立,即使我已经在iOS项目上设置完全相同的设置:

  • 体系结构:armv7s,armv7
  • 仅构build主动架构:是的
  • 支持平台:iOS
  • 有效的体系结构:armv7,armv7s

我不断收到这个错误:

ld:warning:忽略文件 /Users/hidden/Library/Developer/Xcode/DerivedData/HelloWorldCppLib-fomvvtklwijvqicyhahxleiscein/Build/Products/Debug-iphoneos/libHelloWorldCppLib.a,该文件是为存档构build的,而不是被链接的体系结构(armv7s) :/用户/隐藏/资料库/开发人员/ Xcode /

我错过了什么? 它告诉我.a文件不是为armv7s构build的,但是这正是我build立这个库的设置。

当你build立一个库时,你必须为模拟器和设备编译它,然后把两个输出(.a文件)合并到一个库中,然后把它连接到你的iOS项目。

我自己遇到了类似的问题。 @graver的解决scheme绝对有效。

问题在于图书馆是为armv7而不是armv7s 。 您可以使用lipo <path/to/lib.a> -info

将“ Build Active Architectures Only选项设置为“ No可修复此问题。

希望这可以帮助。

另一个附注是:

  Build Active Architectures Only set to no 

是为了lib项目。

在使用cocapods时,我得到了完全相同的错误:对于我来说,解决scheme是有两个不同的构build目标和pod的主动架构。

应用目标:

 Build Active Architectures Only **Yes** 

豆荚目标

 Build Active Architectures Only **No** 

不幸的是,所有这些build议不适用于我 – Xcode 7.3.1(7D1014),iPhone 5。但是,当我删除所有的Xcode临时文件(+重新启动Xcode)并重新生成它成为工作。

它确实发生在我通过CocoaPods使用的Facebook SDK(v4.24.0)上。

清理或设置Build Active Architectures Only NO在豆荚上没有解决问题。

解决方法是清空构build目录(请参阅构build设置/构build位置/ CONFIGURATION_BUILD_DIR)或$(CONFIGURATION_BUILD_DIR) Xcodevariables。

我使用XCode 5.1.1并遇到上述问题。 解决这个问题的更方便的方法似乎只是创build一个存档(通过菜单生成/存档)并分发它。 分布式的lib文件将包含所有定义的体系结构。