57

Eclipse Heliosを実行していて、g++-4.6をインストールしています。g++4.6がC++11の機能を実装していることは間違いではありません。nullptrキーワードとautoキーワードを使用するC++プロジェクトを作成しました。ビルドで次のエラーが発生します:-

../{filename}.cpp:13:13: error: ‘nullptr’ was not declared in this scope

../{filename}.cpp:14:2: warning: ‘auto’ will change meaning in C++0x; please remove it [-Wc++0x-compat]

実は昨日まで元気でした。今日はどこからともなく入手しています。この問題を解決するのを手伝ってください。

4

7 に答える 7

60

C++11の GCC ページによると:

C++0x サポートを有効にするには、コマンドライン パラメーター -std=c++0x を g++ コマンドラインに追加します。または、C++0x 拡張機能に加えて GNU 拡張機能を有効にするには、g++ コマンド ラインに -std=gnu++0x を追加します。GCC 4.7 以降では、-std=c++11 および -std=gnu++11 もサポートされています。

でコンパイルしました-std=gnu++0xか?

于 2012-04-05T17:49:47.367 に答える
21

最後に何をすべきかを見つけました。[プロジェクト プロパティ] -> [C/C++ ビルド] -> [設定] -> [GCC C++ コンパイラ] -> [その他] の下に -std=c++0x コンパイラ引数を追加しました。それは今動作します!

しかし、すべての C++ プロジェクトにデフォルトでこのフラグを追加するにはどうすればよいでしょうか? 誰か?

于 2012-04-06T11:12:39.433 に答える
4

それは実際のコンパイラエラーですか、それともコード分析エラーですか?コード分​​析が少し大雑把で、無効なエラーを報告する場合があります。

プロジェクトのコード分析をオフにするには、プロジェクトエクスプローラーでプロジェクトを右クリックし、[プロパティ]をクリックして、[C / C ++の一般]タブに移動し、[コード分析]に移動します。次に、[プロジェクト設定を使用]をクリックして、不要な設定を無効にします。

また、C ++ 11コンパイラでコンパイルしてもよろしいですか?

于 2012-04-05T17:48:47.503 に答える
3

[設定] -> [コンパイラ] に移動し、「g++ を今後の C++0x ISO C++ 言語標準 [std=c++0x] に準拠させる」にフラグを追加します。

于 2015-12-13T00:48:48.817 に答える
0

「-c -fmessage-length=0」の後に「,-std=c++0x」を追加します。[プロジェクト プロパティ] -> [C/C++ ビルド] -> [設定] -> [GCC C++ コンパイラ] -> [その他] の下にあります。セパレータとしてコンマ「,」を追加することを忘れないでください。

于 2016-07-09T06:40:37.063 に答える