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]
実際、昨日までは順調だった。私は今日どこからでもこれらを入手しています。この問題の解決を手伝ってください。
最後に何をすべきかを見つけました。プロジェクトプロパティ-> C/C++ビルド->設定-> GCC C++コンパイラ->その他に-std = c ++ 0xコンパイラ引数を追加しました。今すぐ動作します!
しかし、すべてのC++プロジェクトにデフォルトでこのフラグを追加する方法は?誰か?
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
でコンパイルしましたか?
G ++ 4.6バージョンを使用している場合は、フラグ-std = c ++ 0xを呼び出してコンパイルする必要があります
g ++ -std = c ++ 0x * .cpp -o output
それは実際のコンパイラエラーですか、それともコード分析エラーですか?コード分析が少し大雑把になり、有効でないエラーを報告する場合があります。
プロジェクトのコード分析をオフにするには、プロジェクトエクスプローラーでプロジェクトを右クリックし、[プロパティ]をクリックして、[C/C++全般]タブ、[コード分析]の順に移動します。次に、「プロジェクト設定を使用」をクリックして、不要な設定を無効にします。
また、C++ 11コンパイラでコンパイルしていることを確認しますか?
[設定]-> [コンパイラ...]に移動し、「g ++をC++ 0x ISO C++言語標準[std = c ++ 0x]に準拠させる」にフラグを追加します。
別のバージョンのgccを試してみましたが、私の場合はgcc 4.9でした。
「-c -fmessage-length = 0」の後に「、-std = c ++ 0x」を追加します。プロジェクトプロパティ-> C/C++ビルド->設定-> GCC C++コンパイラ->その他。セパレータとしてカンマ「、」を追加することを忘れないでください。