我升级了Xcode版本,当使用外部静态库时,我收到此消息:
ld:文件是通用的(3个切片),但不包含(n)armv7s切片:/ file / location for architecture armv7s clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
如果图书馆的开发者还没有更新他们的图书库,有没有办法绕过这个并添加对图书馆的支持?
答案 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上)。因此,我必须更新第三方库,执行清理和构建,现在它已成功构建。