95

またはフラグを使用g++してコンパイルしようとしています。-std=c++11c++0x

ただし、このエラーが発生します

cc1plus: error: unrecognized command line option "-std=c++11"

g++ --バージョン

g++ (GCC) 4.1.2 20080704 (Red Hat 4.1.2-54)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
4

4 に答える 4

107

G++ のバージョンから見ると、ひどく更新する必要があります。C++11 は G++ 4.3 以降でのみ利用可能です。最新バージョンは 4.7 です。

G++ 4.7 より前のバージョンでは、 を使用する必要があります。-std=c++0xより最近のバージョンでは、 を使用できます-std=c++11

于 2013-02-03T16:33:22.763 に答える
14

gcc Web サイトからの引用:

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

したがって、おそらく、サポートしていないバージョンの g++ を使用している可能性があります-std=c++11-std=c++0x代わりに試してください。

C++11 機能を利用できるのは、バージョン >= 4.3 のみです。

于 2013-02-03T16:30:48.777 に答える
-4

同じエラーが発生しました。-D フラグを使用してコンパイルすると修正されました。これを試してください。

g++ -Dstd=c++11

于 2015-05-05T06:52:58.770 に答える