文件是通用的(三个切片),但它不包含iOS上的静态库的(n)ARMv7-s切片错误,无论如何要绕过?

时间:2012-09-13 08:15:39

标签: ios objective-c xcode ios6 static-libraries

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

  

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

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

8 个答案:

答案 0 :(得分:418)

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

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

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

答案 1 :(得分:191)

我只是在目标的构建设置中将“Build Active Architecture Only”切换为“Yes”,现在就可以了!

答案 2 :(得分:27)

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

答案 3 :(得分:13)

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

答案 4 :(得分:5)

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

我很高兴地告诉您,工作已完成,SDK现已在网站上提供。

答案 5 :(得分:4)

使用菜单项目 - >构建设置 - >

然后从“有效架构”中删除armv7s。 如果已选择标准,则删除该标准,然后添加armv7。

答案 6 :(得分:1)

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

希望它有所帮助。

答案 7 :(得分:0)

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