I know there are many duplicates .
这是我的Test.pro:
CONFIG += c++14
SOURCES += main.cpp
和我的main.cpp:
int main(){}
根据许多重复,这应该给我C 14.但是,当我通过维护工具安装 Qt Creator 4.2.0 与 Qt 5.8.0-1 和 MinGW gcc 5.3.0-1 构建项目时,我得到
g -c -pipe -fno-keep-inline-dllexport -g -std = gnu 1y -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DQT_QML_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I .. \ Test -I . -IC:\ Qt \ 5.8 \ mingw53_32 \ include -IC:\ Qt \ 5.8 \ mingw53_32 \ include \ QtGui -IC:\ Qt \ 5.8 \ mingw53_32 \ include \ QtANGLE -IC:\ Qt \ 5.8 \ mingw53_32 \ include \ QtCore -Idebug -IC:\ Qt \ 5.8 \ mingw53_32 \ mkspecs \ win32-g -o debug \ main.o .. \ Test \ main.cpp
这不是 -std=c++14
我期待的 .
我尝试过其他问题的各种技巧
QMAKE_CXXFLAGS_CXX14 = -std=c++14
CONFIG += c++14
QMAKE_CXXFLAGS += -std=c++14
SOURCES += main.cpp
结果
g -c -pipe -fno-keep-inline-dllexport -std = c 14 -g -std = gnu 1y -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DQT_QML_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I .. \测试-I . -IC:\ Qt \ 5.8 \ mingw53_32 \ include -IC:\ Qt \ 5.8 \ mingw53_32 \ include \ QtGui -IC:\ Qt \ 5.8 \ mingw53_32 \ include \ QtANGLE -IC:\ Qt \ 5.8 \ mingw53_32 \ include \ QtCore -Idebug -IC:\ Qt \ 5.8 \ mingw53_32 \ mkspecs \ win32-g -o debug \ main.o .. \ Test \ main.cpp
其中第二个选项覆盖第一个选项,意味着它仍然在 gnu++1y
-mode或只是
QMAKE_CXXFLAGS += -std=c++14
SOURCES += main.cpp
这也导致了
g -c -pipe -fno-keep-inline-dllexport -std = c 14 -g -std = gnu 11 -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DQT_QML_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_NEEDS_QMAIN -I .. \测试-I . -IC:\ Qt \ 5.8 \ mingw53_32 \ include -IC:\ Qt \ 5.8 \ mingw53_32 \ include \ QtGui -IC:\ Qt \ 5.8 \ mingw53_32 \ include \ QtANGLE -IC:\ Qt \ 5.8 \ mingw53_32 \ include \ QtCore -Idebug -IC:\ Qt \ 5.8 \ mingw53_32 \ mkspecs \ win32-g -o debug \ main.o .. \ Test \ main.cpp
我删除了构建目录和Test.pro.user文件以从头开始强制构建,没有给我C 14 .
我怎么告诉qmake使用C 14?
1 回答
你_t65502_t明确支持你正在使用的编译器的Qt版本 . 你可以做 either one 以下内容:
QMAKE_CXXFLAGS_CXX14
和QMAKE_CXXFLAGS_GNUCXX14
:在Qt安装文件夹的
mkspecs/win32-g++/qmake.conf
中编辑上述两个变量的默认值 .添加从
win32-g++
复制的新mkspec
,以编译器为目标,并使用它构建您的Qt . 然后,使用该Qt的所有项目将正确运行w.r.t. C 14支持 .