2013-10-22 19 views
20

のQt Creator 2.8/Qt5.1とVS 2010を使ってプロジェクトをコンパイルすると問題はありません。私がMinGWで同じことをすると、私は次のエラーを受け取ります。Qt:CONFIG + = C++ 11、しかし-std = C++ 0x

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を有効にする必要があります理解し、私は私の.PROファイルにCONFIG += console c++11を持っています。これは必要なものではありませんか? 私は何が間違っていますか?

私は私が見メイクを見て:私はC++ 11のプロファイルで言うように

CXXFLAGS  = -pipe -fno-keep-inline-dllexport -g -std=c++0x 

は、紛らわしいです。それはここからGCC 4.8.0でのMinGWを使用して

  • の作品VS2010で

    1. は、スクラッチ、
    2. としては言っていない結果から、qmakeなど実行し、すべて削除してしまいました。 http://qt-project.org/downloads
    3. この問題は、Win7の32

    がチェックした場合:

    見つかり解決することができますが、しばらくそれを受け入れる:https://stackoverflow.com/a/19530028/356726

  • +4

    '-std = C++ 0x'が古いバージョンのコンパイラでも動作する点を除いて、同じことです。 –

    +0

    ありがとうございます。しかし、#includeを使用すると、なぜ "-std = C++ 11"エラーで有効にする必要がありますか?

    +1

    これは本当に奇妙です。 –

    答えて

    10

    あなたのヒントのおかげで、私はそれを理解しました。

    私は上記の考え方を試したが、まだ成功していないので、自分のプロジェクトで考えることができるサブプロジェクトを除外した。最終的にCONFIG += c++11が定義されていないQMLサンプル.proが見つかりました。

    これはエラーを引き起こしていました。根本的な原因は私が取り組んでいたプロジェクトではなく、同じステップでコンパイルされたサブプロジェクトでした。

    6

    私はQtのCreatorを2.7.2を使用しています、と私は私の.PROファイルに次の行を持っている:

    QMAKE_CXXFLAGS += -std=c++11 
    

    はあなたのためにこの仕事をしていますか?

    +0

    私はこれに道を与えます。どこかQMAKE_CXXFLAGSを使わずにCONFIG + = C++ 11を読んだことがありますが、私は思い出すことができません。私は結果がすぐに更新されます。 –

    +1

    これは私にとって魅力のように働いた!ありがとう! – nullgeppetto

    9

    言うmkspecs/win32-g++/qmake.confライン変更してみてください:

    QMAKE_CXXFLAGS_CXX11 = -std=c++0x 
    

    へ:

    QMAKE_CXXFLAGS_CXX11 = -std=c++11 
    

    と再実行してqmakeのを。


    いくつかの追加の詳細情報:CONFIG qmakeの変数を引っ張らなければmkspecs/features/c++11.prfファイルを原因とする「C++ 11」の機能を追加する

    qmake Advanced Usageの「新コンフィギュレーション機能の追加」を参照してください詳細は文書を参照してください)。

    qmakeプロファイルには、C++ 11のサポートを構成する他のもののうち、QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_CXX11行があります。だから、 "C++ 11"をCONFIG変数に追加するのは、あなたがコメントで述べたように、C++ 11のサポートをqmakeにしたいということを示す適切な方法です。

    +0

    Ubuntu 14.04で最新のQtCreatorを使用しても、私はまだ同じ問題があります(/usr/lib/x86_64-linux-gnu/qt5/mkspecs/common/g++-base.confにあります)。私はそれが動作するように、インストールされたconfファイルを編集する必要があることを少し警告している。この変数を再定義するためのユーザー設定ファイルまたはpro/priファイルの方法はありますか? – sage

    +0

    私は分かりません - これを無効にするユーザーがアクセス可能なメカニズムがあるかどうかを知るには十分な知識がありません。 –

    関連する問題