405

我升级了Xcode版本,当使用外部静态库时,我收到以下消息:

ld:文件是通用的(3 个切片),但不包含 a(n) armv7s 切片:/file/location for architecture armv7s clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

如果库的开发人员还没有更新他们的库,有没有办法绕过这个并添加对库的支持?

4

8 回答 8

418

如果您想删除对任何架构的支持,例如,在您的情况下为ARMv7-s,请使用菜单项目->构建设置-> 从“有效架构”中删除架构。

在库更新之前,您可以将其用作临时解决方案。您必须从主项目中删除架构,而不是从库中。

或者,您可以将调试配置的“仅构建活动架构”的标志设置为是。将发布配置的“仅构建活动架构”保留为否,这样您会在发布之前收到提醒,您应该升级您正在使用的任何第三方库。

于 2012-09-13T09:10:00.540 回答
191

我只是在目标的构建设置中将“仅构建活动架构”切换为“是”,现在可以了!

于 2012-09-16T19:55:57.947 回答
27

尝试从项目的“有效架构”中删除 armv7s 以从 iOS 5.1 手机的此问题中发布

于 2012-09-14T07:32:56.310 回答
13

我刚刚在此处发布了一个修复程序,该修复程序也适用于这种情况 - 基本上,您在外部库中执行十六进制查找和替换,使其认为它是 ARMv7s 代码。您应该能够使用lipo将其分解为 3 个静态库,复制/修改 ARMv7 的一个,然后lipo再次使用为所有 4 个架构组装一个新库。

于 2012-09-13T18:16:12.473 回答
5

Flurry 支持 iPhone 5 (ARMv7s) 正如我在昨天的帖子中提到的,Flurry 在周三发布消息后立即开始开发 iOS SDK 版本以支持新 iPhone 5 中的 ARMv7s 处理器。

我很高兴地告诉您,工作已经完成,并且 SDK 现在可以在网站上使用。

于 2012-09-15T18:52:02.463 回答
4

use menu Project -> Build Settings ->

then remove armv7s from the"valid architectures". If standard has been chosen then delete that and then add armv7.

于 2013-09-27T14:48:45.620 回答
1

万一这发生在某人身上。我建立了自己的库以与第三方代码一起使用。当我构建它以交付时,我不小心将我的 iPhone 4S 插入了电源,因此 Xcode 仅为插入的架构构建了我的库,而不是遵循项目设置。删除所有插入的设备并重建库,链接它,你应该没事。

希望能帮助到你。

于 2013-10-31T17:55:39.150 回答
0

就我而言,我正在链接到一个有点旧的第三方库(为 iOS 6 开发,在 XCode 5 / iOS 7 上)。因此,我不得不更新第三方库,进行清理和构建,现在构建成功。

于 2013-06-25T18:19:52.193 回答