5

C++標準ライブラリの配列コンテナを使用していくつかのオブジェクトを保持するプログラムを作成しています。ただし、プログラムに次のコード行を含めようとすると、次のようになります。

#include <array>

コンパイル時に次のエラーが発生します。

75-143-76-177:soft jeffersonhudson$ g++ mms.cpp -o mms
mms.cpp:5:17: error: array: No such file or directory 
75-143-76-177:soft jeffersonhudson$ 

#includeをコメントアウトすると、問題なくコンパイルできます。確かに私は何か単純なものを見落としていますか?Xcodeに「コマンドラインツール」をインストールしましたが、まだ何かが足りませんか?

編集:

コンピューターでアレイの場所を見つけました

/usr/clang-ide/lib/c++/v1

それを知って、私は何をすべきですか?

4

2 に答える 2

5

<array>はC++11で提供されているため、-std=c++11それを有効にするためのフラグを提供-stdlib=libc++し、対応するライブラリのフラグを提供する必要があります。しかし、Xcodeによって提供されるg ++は非常に古く、C++11をあまりサポートしていません。clangに切り替えてもらえますか?

clang++ -std=c++11 -stdlib=libc++ mms.cpp -o mms
于 2012-09-20T16:29:50.220 に答える
5

見た目からすると、LLVMのlibc ++ではなく、GCCのlibstdc++を使用しています。

std::array後者のコンテキストで使用するには、次を使用します。

#include <tr1/array>

libc++およびC++11を使用する場合は、KennyTMが提案したようにコンパイラフラグを変更します(+1)。

于 2012-09-20T19:22:14.420 に答える