告诉 QMake -std=C++17。 QMAKE_CXXFLAGS 已覆盖
Tell QMake -std=C++17. QMAKE_CXXFLAGS overridden
我使用 Qt 5.9.1,一切正常。除了一个小麻烦:它覆盖了我的 -std=C++17
.
项目:
#CONFIG += c++14 #makes -std=gnu++1y
#CONFIG += c++17 # is not supported by Qt591
QMAKE_CXXFLAGS += -std=c++17
TARGET = equipment
TEMPLATE = app
SOURCES += ....
....
编译说明:
g++ -c -pipe -std=c++17 -g -std=gnu++11 -Wall -W -D_REENTRANT -fPIC
-DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_SERIALPORT_LIB -DQT_CORE_LIB
-I../app -I/opt/Qt5.9.1/5.9.1/gcc_64/include -I/opt/Qt5.9.1/5.9.1/gcc_64
/include/QtCore -I. -I/opt/Qt5.9.1/5.9.1/gcc_64/mkspecs/linux-g++
-o test0.o ../test0.cc
我们可以看到两个 -std=
,QMake 的第二个 -std=gnu++11
覆盖了我的第一个 -std=c++17
。
如何告诉 QMake 使用 -std=C++17
?
试试CONFIG += c++1z
,如果不行就用QMAKE_CXXFLAG
传递给编译器。
我使用 Qt 5.9.1,一切正常。除了一个小麻烦:它覆盖了我的 -std=C++17
.
项目:
#CONFIG += c++14 #makes -std=gnu++1y
#CONFIG += c++17 # is not supported by Qt591
QMAKE_CXXFLAGS += -std=c++17
TARGET = equipment
TEMPLATE = app
SOURCES += ....
....
编译说明:
g++ -c -pipe -std=c++17 -g -std=gnu++11 -Wall -W -D_REENTRANT -fPIC
-DQT_DEPRECATED_WARNINGS -DQT_QML_DEBUG -DQT_SERIALPORT_LIB -DQT_CORE_LIB
-I../app -I/opt/Qt5.9.1/5.9.1/gcc_64/include -I/opt/Qt5.9.1/5.9.1/gcc_64
/include/QtCore -I. -I/opt/Qt5.9.1/5.9.1/gcc_64/mkspecs/linux-g++
-o test0.o ../test0.cc
我们可以看到两个 -std=
,QMake 的第二个 -std=gnu++11
覆盖了我的第一个 -std=c++17
。
如何告诉 QMake 使用 -std=C++17
?
试试CONFIG += c++1z
,如果不行就用QMAKE_CXXFLAG
传递给编译器。