2011-06-23 103 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