在 qt (mingw) 中启用 c++1y

enable c++1y in qt (mingw)

我试图在 qmake 中启用 CONFIG += c++14(使用 mingw),但我总是在生成的 makefile 中得到 -std=c++0x。我发现的唯一解决方法是在我的 .pro 文件中添加 QT_GCC_MAJOR_VERSION = 4QT_GCC_MINOR_VERSION = 9,然后我得到正确的 -std=c++1y。这些变量应该根据使用的编译器自动设置,对吗?是什么导致这些变量未被设置?

我能想到的最简单的pro文件也有这个问题:

TARGET = testProj

TEMPLATE = app

CONFIG += c++14

SOURCES += main.cpp

这实际上是一个影响 mingw 的 Qt 错误:https://bugreports.qt.io/browse/QTBUG-44142

一个简单的解决方法是编辑文件 mkspecs\features\c++14.prf 并注释掉行 greaterThan(QT_GCC_MAJOR_VERSION, 4)|greaterThan(QT_GCC_MINOR_VERSION, 7): \