2011-06-23 73 views
5

我有一个Cocoa项目,我最近导入到Xcode 4中。我注意到我的每个特定构建目标有两个Schema,一个用于32位,一个用于64位。我的项目设置设置为“标准(32/64位Intel)”。Xcode 4中“我的Mac 32位”和“我的Mac 64位”之间的区别?

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

enter image description here

回答

2

该计划设定变化在Xcode中,当您单击运行,建设等架构设置项目设置里面改,在你的屏幕截图看到发生了什么。只有你能够选择“仅32位”或“仅64位”。而且如果你只发布一个只有64位的二进制文件,它可能不会在32位机器上运行。您必须为两个平台构建,并将两个二进制文件包含在一个通用二进制文件中,以便与32位专用Mac兼容。

3

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

一些关于它的更多信息:http://macperformanceguide.com/SnowLeopard-64bit.html

+0

哇,我不知道这一点。 –

+0

是的,我一开始也很惊讶,因为它在Windows上完全不起作用。苹果公司可以摆脱它的原因是,他们没有问题(或只是不在乎)与错误的第三方驱动程序/旧软件,因为他们尽快放弃遗留支持。 –

+0

但我不认为你可以用32位EFI获得应用程序X的“> 4 GB内存”。 64位应用程序是我在64位上运行的,但是除非你有64位硬件,否则这些应用程序不会带来好处?这听起来是对的吗? –

2

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

+0

这是真的,除非应用程序编译为32位,64位或两者,由项目构建设置控制。通过方案设置,您可以选择使用哪个项目构建设置,以便创建一个名为“32位”的方案,指向32位项目构建设置,但仍然选择在“我的Mac 64位”模式下运行该方案以进行调试。调试器可能无法启动,但我没有测试过。 –

+0

如果您将构建设置更改为只有32或64,则其他弹出选项会从弹出窗口消失。弹出窗口很聪明,可以知道项目可用的内容。 – Conor