タイトルは一目瞭然です。 Qt Creator 2.7.0をダウンロードしましたが、いくつかの基本的なC++ 11コードをコンパイルしようとしています。
int my_array[5] = {1, 2, 3, 4, 5};
for(int &x : my_array)
{
x *= 2;
}
次のようなエラーが表示されます。
range based for loops are not allowed in c++ 98 mode
それでも この記事 によると、Qt CreatorのこのバージョンはC++ 11をサポートしています。それでどうやってそれを有効にするのですか?
によると このサイト 追加
CONFIG += c++11
あなたの.proファイルに(そのWebページの下部に参照してください) Qt 5が必要です。
他の答えは、提案する
QMAKE_CXXFLAGS += -std=c++11
(またはQMAKE_CXXFLAGS += -std=c++0x
)
Qt 4.8とgcc/clangでも動作します。
これをあなたの。proファイルに追加してください
QMAKE_CXXFLAGS += -std=c++11
または
CONFIG += c++11
ALiの優れた答えで述べられた両方のケースを処理するための代替手段として、私は通常追加します
# With C++11 support
greaterThan(QT_MAJOR_VERSION, 4){
CONFIG += c++11
} else {
QMAKE_CXXFLAGS += -std=c++0x
}
私のプロジェクトファイルに。これは、チームで使用しているQtのバージョンがあまり気にされない場合に便利ですが、いずれの場合もC++ 11を有効にしてもらいたいです。
qmakeファイルに追加する
QMAKE_CXXFLAGS+= -std=c++11
QMAKE_LFLAGS += -std=c++11
以前のバージョンのQT(<5)を使用している場合はこれを試してください。
QMAKE_CXXFLAGS += -std=c++0x
私がうまく機能させた唯一の場所は、検索することです。
...\Qt\{5.9;またはあなたのバージョン}\mingw {53_32;またはあなたのバージョン}\mkspecs\win32-g ++\qmake.conf:
それから行で:
QMAKE_CFLAGS += -fno-keep-inline-dllexport
編集する
QMAKE_CFLAGS += -fno-keep-inline-dllexport -std=c++11