web-dev-qa-db-ja.com

cc1plus:エラー:g ++で認識されないコマンドラインオプション "-std = c ++ 11"

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

しかし、私はこのエラーを受け取ります

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

g ++ --version

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.
81
user1382306

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

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

99
antonijn

gccウェブサイト からの引用:

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もサポートしています。

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

C++ 11機能の可用性は、バージョン4.3以降のみです。

14
stefan

これを試してみてください

g++-4.4 -std=c++0x or g++-4.7 -std=c++0x
3
papo