Qt Creator 2.8/Qt5.1でプロジェクトをVS 2010でコンパイルすると、すべて問題ありません。 MinGWでも同じことをすると、次のエラーが発生します。
error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
C + 11を有効にする必要があることを理解していますが、CONFIG += console c++11
.proファイル内。これは必要なものではありませんか? 何が悪いのですか?
私が見るメイクを見ると:
CXXFLAGS = -pipe -fno-keep-inline-dllexport -g -std=c++0x
混乱します、私はプロファイルでc ++ 11を言います。
qmake
などを最初から実行した、結果なしチェック済み:
解決策が見つかりましたが、しばらくしてそれを受け入れることができます: https://stackoverflow.com/a/19530028/356726
わかりました、あなたのヒントのおかげで私はそれを理解しました。
上から可能なアドバイスを試した後、それでも成功しない場合は、自分のプロジェクトで考えられるサブプロジェクトをすべて除外しました。結局、CONFIG += c++11
が定義されていないQMLサンプル.proを見つけました。
それがエラーの原因でした。根本的な原因は、私が取り組んでいるプロジェクトではなく、同じステップでコンパイルされたサブプロジェクトでした。
次のmkspecs/win32-g++/qmake.conf
行を変更してみてください:
QMAKE_CXXFLAGS_CXX11 = -std=c++0x
に:
QMAKE_CXXFLAGS_CXX11 = -std=c++11
そしてqmakeを再実行します。
追加の詳細:
"c ++ 11"機能をCONFIG
qmake変数に追加すると、mkspecs/features/c++11.prf
ファイルがプルされます( qmake Advanced Usageの「Adding New Configuration Features」セクションを参照)。 詳細はドキュメント)。
そのqmakeプロファイルには、C++ 11サポートを構成する他のものの中でQMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_CXX11
行があります。コメントで述べたように、CONFIG変数に「c ++ 11」を追加することは、c ++ 11サポートがqmakeに必要であることを示す適切な方法です。
Qt Creator 2.7.2を使用していますが、.proファイルに次の行があります。
QMAKE_CXXFLAGS += -std=c++11
これはうまくいきますか?
qmakeはc ++ 11に持っているフラグを使用します。したがって、次のように上書きできます。
unix:QMAKE_CXXFLAGS_CXX11 = -std = c ++ 11
CONFIG * = c ++ 11
古いqmakeがそれらを認識していない可能性があるため、構成にc ++ 11が追加されている場合は、代わりに-std = c ++ 14または-std = c ++ 17を使用するように指示することもできます。