首页 文章

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

提问于
浏览
403

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

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

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

8 回答

  • 13

    如果要删除对任何体系结构的支持,例如,在您的情况下为ARMv7-s,请使用菜单项目 - >构建设置 - >从"valid architectures"中删除体系结构 .

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

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

  • 27

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

  • 4

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

  • 5

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

  • 417

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

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

  • 191

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

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

  • 0

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

    希望能帮助到你 .

  • 1

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

相关问题