我升级了Xcode版本,当使用外部静态库时,我收到以下消息:
ld:文件是通用的(3个切片),但不包含(n)armv7s切片:/ file / location for architecture armv7s clang:error:linker命令失败,退出代码为1(使用-v查看调用)
如果库的开发人员还没有更新他们的库,有没有办法绕过这个并添加对库的支持?
如果要删除对任何体系结构的支持,例如,在您的情况下为ARMv7-s,请使用菜单项目 - >构建设置 - >从"valid architectures"中删除体系结构 .
在库更新之前,您可以将其用作临时解决方案 . 您必须从主项目中删除体系结构,而不是从库中删除 .
或者,您可以将调试配置的“仅构建活动体系结构”的标志设置为“是” . 将发布配置的“仅构建活动体系结构”保留为“否”,这样您就可以在发布之前获得提醒,您应该升级您正在使用的任何第三方库 .
我只是在目标的构建设置中将“Build Active Architecture Only”切换为“Yes”,现在就可以了!
尝试从项目的“有效架构”中删除armv7s,以便从iOS 5.1手机的此问题中解脱出来
我刚刚发布了一个修复here,它也适用于这种情况 - 基本上,你在外部库中进行十六进制查找和替换,使其认为它是ARMv7s代码 . 您应该能够使用 lipo 将其分解为3个静态库,复制/修改ARMv7,然后再次使用 lipo 为所有4个体系结构组装新库 .
lipo
iPhone 5的乱舞支持(ARMv7s)正如我在昨天的帖子中所提到的,Flurry在周三公布之后立即开始研发iOS SDK版本以支持新iPhone 5中的ARMv7s处理器 .
我很高兴地告诉您,工作已完成,SDK现已在网站上提供 .
使用菜单项目 - >构建设置 - >
然后从“有效架构”中删除armv7s . 如果已选择标准,则删除它然后添加armv7 .
如果这发生在某人身上 . 我构建了自己的库以与第三方代码一起使用 . 当我正在构建它时,我不小心将我的iPhone 4S插入,因此Xcode仅为插件架构而不是按照项目设置构建我的库 . 删除任何插入的设备并重建库,链接它,你应该没事 .
希望能帮助到你 .
就我而言,我正在链接到一个有点旧的第三方库(为iOS 6开发,在XCode 5 / iOS 7上) . 因此,我必须更新第三方库,执行清理和构建,现在它已成功构建 .
8 回答
如果要删除对任何体系结构的支持,例如,在您的情况下为ARMv7-s,请使用菜单项目 - >构建设置 - >从"valid architectures"中删除体系结构 .
在库更新之前,您可以将其用作临时解决方案 . 您必须从主项目中删除体系结构,而不是从库中删除 .
或者,您可以将调试配置的“仅构建活动体系结构”的标志设置为“是” . 将发布配置的“仅构建活动体系结构”保留为“否”,这样您就可以在发布之前获得提醒,您应该升级您正在使用的任何第三方库 .
我只是在目标的构建设置中将“Build Active Architecture Only”切换为“Yes”,现在就可以了!
尝试从项目的“有效架构”中删除armv7s,以便从iOS 5.1手机的此问题中解脱出来
我刚刚发布了一个修复here,它也适用于这种情况 - 基本上,你在外部库中进行十六进制查找和替换,使其认为它是ARMv7s代码 . 您应该能够使用
lipo
将其分解为3个静态库,复制/修改ARMv7,然后再次使用lipo
为所有4个体系结构组装新库 .iPhone 5的乱舞支持(ARMv7s)正如我在昨天的帖子中所提到的,Flurry在周三公布之后立即开始研发iOS SDK版本以支持新iPhone 5中的ARMv7s处理器 .
我很高兴地告诉您,工作已完成,SDK现已在网站上提供 .
使用菜单项目 - >构建设置 - >
然后从“有效架构”中删除armv7s . 如果已选择标准,则删除它然后添加armv7 .
如果这发生在某人身上 . 我构建了自己的库以与第三方代码一起使用 . 当我正在构建它时,我不小心将我的iPhone 4S插入,因此Xcode仅为插件架构而不是按照项目设置构建我的库 . 删除任何插入的设备并重建库,链接它,你应该没事 .
希望能帮助到你 .
就我而言,我正在链接到一个有点旧的第三方库(为iOS 6开发,在XCode 5 / iOS 7上) . 因此,我必须更新第三方库,执行清理和构建,现在它已成功构建 .