2017-08-22 9 views
4

プロジェクトファイル:qmakeでC++ 11を無効にするには?

CONFIG -= qt 
QMAKE_CXXFLAGS += -std=c++98 
QMAKE_CXXFLAGS -= -std=c++11 
QMAKE_CXXFLAGS -= -std=gnu++11 
CONFIG -= c++11 

結果:あなたはオプション-std=gnu++11を見たよう

g++ -c -pipe -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-but-set-variable -Wno-reorder -Wno-missing-field-initializers -std=c++98 -DDEBUG -g -std=gnu++11 -Wall -W -fPIC -DQT_QML_DEBUG -I../../qqq -I. -I../src/jsoncpp -I../lib -I../../../../Qt/5.9.1/gcc_64/mkspecs/linux-g++ -o ../build/debug/obj/TaskManager.o ../src/TaskManager.cpp 
g++ -c -pipe -Wno-unused-parameter -Wno-unused-variable -Wno-unused-function -Wno-unused-but-set-variable -Wno-reorder -Wno-missing-field-initializers -std=c++98 -DDEBUG -g -std=gnu++11 -Wall -W -fPIC -DQT_QML_DEBUG -I../../qqq -I. -I../src/jsoncpp -I../lib -I../../../../Qt/5.9.1/gcc_64/mkspecs/linux-g++ -o ../build/debug/obj/Utils.o ../src/Utils.cpp 

はまだ("QMAKE_CXXFLAGS -="/"CONFIG -="にありません任意のreactoion)が存在します。

のQt:

Qt Creator 4.3.1 
Based on Qt 5.9.1 (GCC 5.3.1 20160406 (Red Hat 5.3.1-6), 64 bit) 
Built on Jun 29 2017 04:10:39 

はあなたにたくさんありがとうございました。


P.S.私は

./qqq: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by ./qqq) 
./qqq: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./qqq) 
./qqq: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 

クリーンなシステム上のGNU ++ 11(gccのextenstionsとC++)との互換性の問題があり、使用したいC++ 11(C++ gccのextenstionsなし)の代わりにGNU ++ 11任意のextenstionsのない私はあなたが作業するプラットフォームによって:-(

+2

C++ 11を完全に無効にしたい(C++ 98に切り替える)のか、単にGNU拡張機能を無効にして "plain" C++ 11。後者の場合は 'CONFIG + = strict_C++'です。 – peppe

+0

.proファイルを変更した後にqmakeを実行していますか?私は、.proファイルへの変更が取り上げられず、qmakeが再実行されないので、古いオプションがまだ有効であるケースを見てきました。 – jwernerny

+0

@peppe大変感謝しています。 gnu ++ 11は本当に消えています。これは私が欲しいものです。しかし、私はQt CreatorをIDEとしてのみQt機能なしで使用するので、Qtプロジェクトには設定に関する問題があります。テキストエディタとデバッガです。これは私たちにとって最も快適なIDEです(NetBeansと比較して)。しかし、FORCE SETコンパイラは可能ですか?私はC++ 98やネイティブCをC++なしで書いていたのですか?私はオープンQtプロジェクトではなく、CMakeListsを意味します。どのように私はCMakeLists + Qt Creatorを覚えていますか(私はCMakeLists + Qt CreatorのCプロジェクトをいくつか作成しました)。 –

答えて

0

それを無効にすることはできません、あなたはコンパイラの言語の方言を設定するためにQMAKE_CXX_FLAGSを使用する必要があります。c++11または厳格-C++に設定CONFIG変数がQtのを構成しますヘッダーはこれらの設定に準拠する必要がありますが、彼女らはコンパイラのデフォルトの方言を使用します。これはGCCとmingwではgnu ++ XXです。 (gcc 8.0の場合は1zまで)

関連する問題