【问题标题】:Difference between "My Mac 32-bit" and "My Mac 64-bit" in Xcode 4?Xcode 4 中“我的 Mac 32 位”和“我的 Mac 64 位”之间的区别?
【发布时间】:2011-09-21 04:10:12
【问题描述】:

我有一个最近导入 Xcode 4 的 Cocoa 项目。我注意到我的每个特定构建目标都有两个方案,一个用于 32 位,一个用于 64 位。我的项目设置设置为“标准(32/64 位英特尔)”。

当我选择“我的 Mac 32 位”方案时,是否会为 32 位机器编译它,并选择“我的 Mac 64 位”,然后为 64 位机器编译它?如果我选择“我的 Mac 64 位”方案,它会不再在 32 位机器上运行吗?

【问题讨论】:

    标签: xcode macos xcode4 64-bit


    【解决方案1】:

    当您单击“运行”、“构建”等时,Scheme 设置会更改 Xcode 中发生的情况。架构设置会在项目设置中更改,在您的屏幕截图中可见。只有在那里您才能选择“仅 32 位”或“仅 64 位”。如果您仅发布 64 位二进制文​​件,它很可能无法在 32 位机器上运行。您必须为这两个平台构建并将这两个二进制文件包含在一个通用二进制文件中,才能向后兼容仅 32 位的 Mac。

    【讨论】:

      【解决方案2】:

      Mac OS X 允许您在 32 位 Mac OS X 上运行 64 位软件,反之亦然,在 64 位 Mac OS X 上运行 32 位软件。如果您的软件使用大量内存,请不要犹豫,选择 64位选项。否则,您应该进行基准测试,看看哪个更好,因为 32 位内核上的 64 位软件往往会对性能产生一些影响。

      更多信息:http://macperformanceguide.com/SnowLeopard-64bit.html

      【讨论】:

      • 是的,一开始我也很惊讶,因为它在 Windows 上根本不起作用。 iirc,Apple 可以侥幸逃脱的原因是他们对有缺陷的第三方驱动程序/旧软件没有问题(或者只是不关心),因为他们会尽快放弃旧版支持。
      • 我不认为您可以使用 32 位 EFI 获得“应用 X 的 ">4 GB 内存”。我在 64 上运行 64 位应用程序,但除非您拥有 64 位硬件,否则无法获得该优势?听起来对吗?
      • 听起来不错,但我必须承认我对 Mac 平台的了解已经有限。
      【解决方案3】:

      将方案设置从“My Mac 32-bit”更改为“My Mac 64-bit”不会更改应用程序的编译方式。它只会更改在您的机器上立即启动以进行测试或分析的二进制版本。该应用程序继续编译 32 位和 64 位二进制文​​件并将其包含在最终产品中,以作为通用应用程序发布。

      【讨论】:

      • 这是真的,除非应用程序是编译为 32 位、64 位还是两者,由项目构建设置控制。方案设置允许您选择使用哪些项目构建设置,因此您可以创建一个名为“32 位”的方案,指向 32 位项目构建设置,但仍选择在“我的 Mac 64 位”模式下运行该方案以进行调试.在这种情况下调试器可能无法启动,但我还没有测试过。
      • 如果您将构建设置更改为只有 32 或 64,则在另一个中启动的选项将从弹出窗口中消失。弹出窗口足够聪明,可以知道项目可用的内容。
      猜你喜欢
      • 2014-08-09
      • 2017-07-29
      • 2011-12-12
      • 1970-01-01
      • 1970-01-01
      • 2011-09-13
      • 2019-04-15
      • 2015-05-31
      • 2017-07-01
      相关资源
      最近更新 更多