3

ネットワークシミュレータNS-3のコード内でunordered_mapのようなデータ構造を使用する必要があります。ソースコードをコンパイルするためにwafビルダーを使用しています。コンパイラフラグに追加する-std=c ++ 0xをどこに追加すればよいのか混乱していますか?以下を使用して、メインのwscriptファイルのCXXFlagsに追加してみました。

module.env.append_value('CXXFLAGS', '-std=c++0x');

しかし、それでも私はこのエラーを受け取ります:

このファイルには、次のISOC++標準であるC++0xのコンパイラとライブラリのサポートが必要です。このサポートは現在実験段階であり、-std = c++0xまたは-std=gnu++0xコンパイラオプションを使用して有効にする必要があります。C /C++の問題

また、wafモジュールにもライブラリを追加する必要がありますか?

PS:私のGCCバージョンは4.4です

更新:4.7に更新した後、次のエラーが発生します:

error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.

11ではなく0xを使用するようにコンパイラーに指示する方法はありますか?

4

1 に答える 1

9

解決策は次のとおりです。

まず、Ns-3のGCCを4.7にアップグレードすると、標準の変更によりエラーが増え、問題は解決しません。そこで、gccとg++を4.4.3に戻しました。

しかし、このエラーを取り除くために(それが言うように)、このオプションをCXXFLAGSに追加する必要があります:

-std=c++0x

CXXFLAGにオプションを追加するには、次を使用できます。

CXXFLAGS="-std=c++0x" ./waf configure

または、wafconfigureにオプションを追加する場合:

CXXFLAGS="-std=c++0x" ./waf -d debug --enable-examples --enable-tests configure
于 2012-08-09T21:55:52.957 に答える