【问题标题】:When is it necessary to compile for i386 on iOS什么时候需要在 iOS 上编译 i386
【发布时间】:2015-06-08 11:11:43
【问题描述】:

我最近搬到了一家新公司,并试图掌握一个项目的 Xcode 设置。目前该项目正在为“armv7 armv7s arm64 armv8 i386”编译。有人可以解释一下是否需要为 i386 编译以及为什么?

如果我删除它,我的项目编译正常。需要注意的一件事是,我正在链接到使用相同架构编译的 c++ lib。 i386 是用于模拟器还是任何特定的 iOS 设备?

谢谢

【问题讨论】:

    标签: c++ ios xcode build-settings


    【解决方案1】:

    需要 i386 版本才能在 iOS 模拟器中运行您的应用程序,该模拟器在 OS X 上本机运行并使用底层 x86/x64 硬件。这比模拟 ARM 快得多。

    【讨论】:

    • 快速说明:并非所有 3rd 方库都在 sim 下运行,这意味着您最终会遇到一个只能在手机上调试的应用程序,并且必须从列表。
    【解决方案2】:

    您不需要在架构构建设置中专门指定 i386。理想情况下,您应该将 ARCHS 和 VALID_ARCHS 保留为默认值,并且一切都应该“正常工作”。您只会看到列出的 arm 架构,但在为 sim 构建时,正确的事情发生在幕后。

    为模拟器构建时,您的项目将为 i386、x86_64 或两者构建(取决于部署目标以及 ARCHS 和 ONLY_ACTIVE_ARCH 构建设置)。在模拟器中,32位设备只允许运行i386代码,64位设备可以同时运行i386和x86_64b代码(和真机一样,但是使用intel而不是arm)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-29
      • 2012-09-16
      • 1970-01-01
      • 1970-01-01
      • 2012-06-04
      • 2017-01-28
      • 2018-12-10
      相关资源
      最近更新 更多