Ubuntu 14.04 LTSでg ++ 4.8.4を使用しています。 '-std = c ++ 14'でコンパイルしようとすると、次のエラーが表示されます。
g++: error unrecognized command line option '-std=c++14'
'-std = c ++ 11'でコンパイルすると問題なく動作するため、何が起こっているのかわかりません。 g ++はまだc ++ 14をサポートしていませんか?間違ったコマンドラインオプションを使用していますか?
最新バージョンを自動的に取得する「Sudo apt-get install g ++」を使用しましたが、正しいですか?
gcc 4.8.4
については、後のバージョンで-std=c++1y
を使用する必要があります。5.2
から始めるように見えますが、-std=c++14
を使用できます。
Gcc online documents を見ると、gccの各バージョンのマニュアルを見つけることができ、 Dialectオプションに移動して確認できます。 4.9.3GCC 4.9.3 manual の下で:
「c ++ 1y」
2014年に暫定的に計画されているISO C++標準の次の改訂。サポートは非常に実験的であり、将来のリリースではほぼ確実に互換性のない方法で変更されます。
4.9.3
までは、[ gcc 5.2 options と言う間に-std=c++1y
を使用する必要がありました。
「c ++ 14」「c ++ 1y」
2014 ISO C++標準および修正。 「c ++ 1y」という名前は非推奨です。
これがOptions Controlling C Dialect
の下にリストされている理由は明らかではありませんが、それがドキュメントの現在の編成方法です。
-std=c++14
フラグは、GCC 4.8ではサポートされていません。 C++ 14機能を使用する場合は、-std=c++1y
でコンパイルする必要があります。 godbolt.org を使用すると、-std=c++14
をサポートする最も古いバージョンはGCC 4.9.0またはClang 3.5.0のようです
G ++は、-std=c++14
と-std=c++1y
の両方を介してC++ 14をサポートします。後者は、リリースされる年が知られる前の標準の一般名でした。古いバージョン(ご使用のバージョンを含む)では、後者のバージョンのみが受け入れられます。これは、それらのバージョンがリリースされた時点ではリリース年がまだ不明だったためです。
最新バージョンを自動的に取得する「Sudo apt-get install g ++」を使用しましたが、正しいですか?
存在する最新バージョンではなく、Ubuntuリポジトリで利用可能な最新バージョンをインストールします。
最新のGCCバージョンは5.2です。
https://Gist.github.com/application2000/73fd6f4bf1be6600a2cf9f56315a2d91 の指示に従って、Ubuntu 14.04で必要なgccバージョン(gcc 5またはgcc 6)をセットアップします。手順には、必要に応じてバージョンを切り替えることができるようにupdate-alternatives
を構成することが含まれます。