【发布时间】:2011-09-21 04:10:12
【问题描述】:
我有一个最近导入 Xcode 4 的 Cocoa 项目。我注意到我的每个特定构建目标都有两个方案,一个用于 32 位,一个用于 64 位。我的项目设置设置为“标准(32/64 位英特尔)”。
当我选择“我的 Mac 32 位”方案时,是否会为 32 位机器编译它,并选择“我的 Mac 64 位”,然后为 64 位机器编译它?如果我选择“我的 Mac 64 位”方案,它会不再在 32 位机器上运行吗?
【问题讨论】:
我有一个最近导入 Xcode 4 的 Cocoa 项目。我注意到我的每个特定构建目标都有两个方案,一个用于 32 位,一个用于 64 位。我的项目设置设置为“标准(32/64 位英特尔)”。
当我选择“我的 Mac 32 位”方案时,是否会为 32 位机器编译它,并选择“我的 Mac 64 位”,然后为 64 位机器编译它?如果我选择“我的 Mac 64 位”方案,它会不再在 32 位机器上运行吗?
【问题讨论】:
当您单击“运行”、“构建”等时,Scheme 设置会更改 Xcode 中发生的情况。架构设置会在项目设置中更改,在您的屏幕截图中可见。只有在那里您才能选择“仅 32 位”或“仅 64 位”。如果您仅发布 64 位二进制文件,它很可能无法在 32 位机器上运行。您必须为这两个平台构建并将这两个二进制文件包含在一个通用二进制文件中,才能向后兼容仅 32 位的 Mac。
【讨论】:
Mac OS X 允许您在 32 位 Mac OS X 上运行 64 位软件,反之亦然,在 64 位 Mac OS X 上运行 32 位软件。如果您的软件使用大量内存,请不要犹豫,选择 64位选项。否则,您应该进行基准测试,看看哪个更好,因为 32 位内核上的 64 位软件往往会对性能产生一些影响。
【讨论】:
将方案设置从“My Mac 32-bit”更改为“My Mac 64-bit”不会更改应用程序的编译方式。它只会更改在您的机器上立即启动以进行测试或分析的二进制版本。该应用程序继续编译 32 位和 64 位二进制文件并将其包含在最终产品中,以作为通用应用程序发布。
【讨论】: