2012-05-03 13 views
5

私はXcode for C++を使用するMac OS X Lionユーザーであり、Xcodeで利用可能な更新がないようです。私はC++の11独占コードをコンパイルできないようだが、何らかの理由でAppleがC++ 11を実装したと思った。そして、はい、私はコマンドラインツールをサポートしています。XcodeのC++ 11で問題が発生しています

もう一度、それはちょうど私かもしれません。もしそうなら、C++ 11をサポートするどんな種類のIDEか、それともアップグレードする方法がありますか?

+4

Xcode 4.2はclangに付属し、clangはC++ 11を部分的にサポートしています。ビルドオプションでclangに切り替えることができます。 –

+0

あなたはMacportsを使うことができます。最新のgccバージョンはすべて出荷しています。http://www.macports.org/ – inf

答えて

8

C++言語の方言:C++ 11またはGNU ++ 11

C++ライブラリスタンダール:libcの++(C++ 11のサポートとLLVM C++ライブラリスタンダール)

Xcodeのバージョン:XCodeの5/OpenCVの2.4.9に4.3.2

XCode project settings

+0

それはうまくいくようです!ありがとう! – Whovian

+0

また、LLVMコンパイラも選択することを忘れないでください。 – sbooth

+2

私はstd libをリンクすることに問題があります。私がlibstC++(GNU C++ Standartライブラリ)を選択した場合、リンカは "std :: string :: find(char、unsigned long)const"と他のシンボルをリンクすることはできません。 ":: can not find :: std :: move"というヘッダーにコンパイラエラーがあります。私は間違って何をしていますか?これをどうすれば解決できますか?ありがとう。 – BergP

3

Xcode 4.3を使用している場合は、C++ 11の機能を使用するために必要ないくつかの関連プロジェクト設定があります。 1つ目は、clangコンパイラを使用することです。あなたの.xcconfig

GCC_VERSION = com.apple.compilers.llvm.clang.1_0 

のように設定するか、GUIを使用できます。これは、言語のために基づいて、範囲などの機能、委任コンストラクタなどが利用できるようになります

CLANG_CXX_LANGUAGE_STANDARD = gnu++11 

次は、その使用するC++標準LLVMを伝える必要があります。

あなたが(例えばstd::unordered_mapなど)C++ 11のSTLの機能を使用したい場合は最後に、あなたが++ STL libcを使用する必要があります。私はXcodeのを使用して、次の設定を

CLANG_CXX_LIBRARY = libc++ 
+0

本当にすみません、私はとても新しいですが、どうしたらいいのですか?どうやら、それらはLLVMや何かのもののためのコマンドですが、私は本当に何をすべきか分かりません。 – Whovian

+0

.xcconfigファイルを使用していない場合は、Xcodeのインスペクタでプロジェクトファイルを選択することができ、Alexanderが投稿したのと同様のオプションリストが表示されます。 – sbooth

0

は、私が選択できます。

XCode settings

そして、それはエラーなしで構築します。 C++言語の方言を指定せずにlibC++を設定した場合、OPと同じ問題が発生する

関連する問題