【问题标题】:Xcode iOS6 compile errors: No architectureXcode iOS6 编译错误:无架构
【发布时间】:2012-09-24 20:54:27
【问题描述】:

所以我最近刚刚将 Xcode 更新到 4.5,并且能够使用 iOS6 手机。我在模拟器上进行测试很好(4.3/5.1/6.0),但是当我决定在实际的 iOS 6 手机上进行构建时,它给了我这个错误。

No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=armv7s, VALID_ARCHS=armv6 armv7 i386).

我进行了一些查找并通过进入构建设置来修复它以更改有效架构以包含 armv7s,它完成了它应该做的事情。

但是通过添加我得到了这个错误

ld: file is universal (3 slices) but does not contain a(n) armv7s slice: some static library framework for architecture armv7s

在我看来,静态库框架导致了所有问题,因为它不支持 iOS 6,而且我不太乐观地认为它可以很容易地修复。但是,由于我无法在网上确定我的确切情况,我希望有人比我更了解这一点并且可以帮助我。谢谢

注意:静态库在代码中无处不在,删除它几乎不是一种选择

【问题讨论】:

    标签: objective-c ios architecture compiler-errors ios6


    【解决方案1】:

    您可以尝试更改“仅构建活动架构”YES --> NO。很适合我。

    【讨论】:

      【解决方案2】:

      为了构建,应用程序链接的所有静态库都必须为应用程序的所有架构生成代码。

      看起来 Xcode 4.5 已更新您的项目以构建 armv7s 代码,但它忽略了将 armv7s 添加到应用程序的活动架构中。

      修复该问题后,问题似乎在于静态库未生成 armv7s 代码,但您的应用程序正在尝试为 armv7s 构建。

      如果这是问题所在,有两种方法可以解决此问题。或者您希望您的应用程序仅生成 armv7 代码(无需 armv7s 代码),您需要将应用程序的目标设置更改为:

      ...或者您希望您的应用程序和所有链接的静态库具有如下所示的构建设置:

      armv7 代码可​​以在 3gs 以上的任何设备上运行。 armv7s 代码只能在 iPhone 5 上运行,并且会稍微快一些。

      因此,如果您可以使用 iPhone 5 进行测试,并且您拥有静态库的源代码,那么第二个选项可能是最好的。否则,假设您的库至少生成 armv7 代码,那么只要您的应用程序不尝试构建 armv7s,您也应该没问题。

      如果库仅构建 armv6 代码,而 xCode 4.5 不支持,那么您需要更改其构建设置以至少生成 armv7 代码。

      【讨论】:

      • 好吧,我无法真正删除 armv7s 架构,因为它会再次出现无架构错误,但我如何将其添加到静态库中?
      【解决方案3】:

      Xcode 4.5 不再支持 armv6,因此您需要移除此架构。

      正如您已经发现的那样,您使用的库似乎不支持 armv7,这现在是必不可少的。

      我认为除了使用正确的目标编译库之外别无选择。如果你有源代码,这应该是微不足道的;如果是第三方,则您依赖他们进行更新。但是,他们会知道,如果不更新他们的库,他们的生命周期已经结束。

      【讨论】:

      • 是的,它的静态库似乎需要更新,我尝试了 chris 的建议,但没有奏效。
      【解决方案4】:

      我也有类似的问题。通过在目标项目的构建设置中将“仅构建活动架构”更改为“否”来解决此问题。

      【讨论】:

        【解决方案5】:

        删除 armv7s 并添加 armv7(和/或 armv6)

        【讨论】:

        • 有效架构:(之前)armv6 armv7 i386(之后)armv6 armv7 i386 armv7s 我必须添加它以消除无架构编译错误
        • 你能把Base SDK改成iOS 5然后这样运行吗?想不起来了。
        猜你喜欢
        • 2014-04-15
        • 2018-04-03
        • 1970-01-01
        • 1970-01-01
        • 2011-06-22
        • 2012-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多