2011-09-25 193 views
5

我有時在Windows/Visual Studio 2010上開發的項目,它使用了一些C++ 11功能,我需要能夠在Mac OS上開發/構建X.當我試圖用Xcode構建項目時,我發現很多關於新的C++ 11功能的錯誤,並檢查了gcc版本以發現它很舊(4.2)。 看起來蘋果正試圖迫使開發人員通過拒絕允許Xcode 4+在任何其他版本的Mac OS上下載來支付Lion的不必要升級,因此我只剩下Xcode 3.x.在Mac OS X上使用Xcode的C++ 11 Snow Leopard

如何繼續在Snow Leopard上使用C++ 11?有沒有一種方法可以做到這一點,並保持Xcode作爲一個IDE?

+0

[我可以在XCode 4或OSX Lion中使用C++ 11的最新功能嗎?](http://stackoverflow.com/q/7482026/636019) – ildjarn

+0

ildjarn,絕對不可以。這個問題涉及XCode版本<4,因爲Snow Leopard用戶禁止使用XCode 4.您鏈接的問題是關於XCode 4/Lion。 – nuit9

+1

儘管Xcode 3是Snow Leopard的默認版本,但Apple確實通過Mac App Store爲SL提供了Xcode 4的早期版本(並且版本可通過Apple Developer Connection獲得)。 –

回答

6

更新feb.25 2012:現在有很多功能可供您使用最新的clang。 也許如果僅使用語言功能,則可以將目標設爲10.6。如果你需要庫功能,你將需要10.7。


給出的Xcode工具集本(sept.24.2011)狀態

,這是最簡單的(IMO)選擇其他IDE或操作系統,如果你需要C++ 11的支持。

gcc xcode使用的分支不會支持這些功能。鏗鏘聲遠遠落後於C++ 11的特性(因爲它的C++實現還很新,其他編譯器還有幾年)。因此,xcode附帶的編譯器目前不支持用於C++ 11開發的足夠功能,而與您使用的osx版本無關。

您可以安裝更新版本的gcc並相當容易地使用另一個ide。從技術上講,您還可以爲xcode 3(不正式支持)調用另一個編譯器(例如gcc的更新版本)創建一個插件。該路線已在xc4(afaik)中關閉。 更新顯然,它仍然可用於Xc4;請參閱下面的idljarn評論。

對於很多項目,只需使用您的Mac啓動到Linux或Windows(或使用虛擬化)更容易。

您的最終選擇是英特爾的編譯器,它可以在xcode中使用並提供相當數量的C++ 11支持 - 在購買之前先用xcode試用它,看看它是否適合您的需求,與xcode,並支持您團隊使用的C++ 11功能。

最後,我不認爲他們這樣做是爲了升級錢。他們確實沒有很好地維護多個版本的xcode - 他們只是希望你保持最新最好的版本,除非你需要向後兼容;在這種情況下,您只需停止升級。他們在海灣合作委員會執照變更後投資並協助發展鏗鏘。所以是啊... osx一直都很支持wrt C++ 11的支持,因爲他們決定轉換到另一個(非常年輕的)編譯器。如果你等待xcode支持C++ 11,那麼你將不得不等待clang來支持它,這可能會持續一段時間。

+1

xcode 3的插件也適用於xcode 4(儘管不受支持)。 – ildjarn

+0

@ildjarn正是我所需要的...在晚上結束之前的另一個項目(但嚴重,謝謝!=)) – justin

+0

@ildjarn證實。 gcc4.5(通過'port')作爲一個插件與xc4。 – justin

3

我剛纔看到了這個,我想在此更新你。目前與XCode一起發貨的LLVM版本爲3(Source)。這個當前版本支持C++ 11非常好。這裏是一個鏈接,支持什麼:

http://clang.llvm.org/cxx_status.html

可以與目前的GCC支持這裏的比較:

http://gcc.gnu.org/projects/cxx0x.html

正如你所看到的,鏘目前也不甘落後,如果完全可以支持新標準的功能。我唯一看到的是缺乏對併發功能的支持,但是對於大多數C++ 11編譯器來說,由於支持它的本質,情況就是這樣。所以我希望這個答案不是太晚,而且你是沒有被嚇倒。去獲取Xcode的最新版本然後開火(如果你還沒有這樣做的話))!

相關問題