首页 文章

如何用最近的MinGW将qmake设置为C 14?

提问于
浏览
2

I know there are many duplicates .

这是我的Test.pro:

CONFIG += c++14
SOURCES += main.cpp

和我的main.cpp:

int main(){}

根据许多重复,这应该给我C 14.但是,当我通过维护工具安装 Qt Creator 4.2.0Qt 5.8.0-1MinGW 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 回答

  • 2

    你_t65502_t明确支持你正在使用的编译器的Qt版本 . 你可以做 either one 以下内容:

    • 在项目中设置 QMAKE_CXXFLAGS_CXX14QMAKE_CXXFLAGS_GNUCXX14
    win32-g++ {
       QMAKE_CXXFLAGS_CXX14 = -std=c++14
       QMAKE_CXXFLAGS_GNUCXX14 = -std=c++14
    }
    
    • 在Qt安装文件夹的 mkspecs/win32-g++/qmake.conf 中编辑上述两个变量的默认值 .

    • 添加从 win32-g++ 复制的新 mkspec ,以编译器为目标,并使用它构建您的Qt . 然后,使用该Qt的所有项目将正确运行w.r.t. C 14支持 .

相关问题