.pro 文件 CONFIG 设置接受 c++14:
CONFIG += c++14
但忽略 c++17(或 c++20):
CONFIG += c++17
甚至手动指定:
win32 {
QMAKE_CXXFLAGS += /std:c++17
}
导致 cl
输出错误:
cl : Command line warning D9002 : ignoring unknown option '/std:c++17'
并且 __cplusplus
的值保持不变:
__cplusplus=199711L
示例输出:
cl -c -nologo -Zc:wchar_t -FS -Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew
/std:c++17 -Zi -MDd -W3 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458 -wd4577 -wd4467 -EHsc /Fdobj\VideoSync-app.vc.pdb
-DUNICODE -D_UNICODE -DWIN32 -D_ENABLE_EXTENDED_ALIGNED_STORAGE -DWIN64 -DAPP_VERSION="1.0.0" -DAPP_VERSION_FULL="1.0.0.214" -DQT_DEPRECATED_WARNINGS -DQT_USE_QSTRINGBUILDER -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_QML_DEBUG -DQT_CHARTS_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CONCURRENT_LIB -DQT_CORE_LIB
-I..\..\..\MyProj -IS:\opt\dev\MyProj\build\debug -I..\..\..\MyProj\src -I..\..\..\MyProj\src\util -I\opt\opencv\include -I/usr/local/include
-IC:\Qt\5.14.2\msvc2017_64\include -IC:\Qt\5.14.2\msvc2017_64\include\QtCharts -IC:\Qt\5.14.2\msvc2017_64\include\QtWidgets -IC:\Qt\5.14.2\msvc2017_64\include\QtGui -IC:\Qt\5.14.2\msvc2017_64\include\QtANGLE -IC:\Qt\5.14.2\msvc2017_64\include\QtConcurrent -IC:\Qt\5.14.2\msvc2017_64\include\QtCore -IS:\opt\dev\proj\build\debug\generated -IS:\opt\dev\proj\build\debug\generated -I/include
-IC:\Qt\5.14.2\msvc2017_64\mkspecs\win32-msvc -Foobj\ @C:\Users\User.PRO\AppData\Local\Temp\main.obj.16084.359.jom
main.cpp
__cplusplus=199711L
答案 0 :(得分:1)
构建项目时,您需要在左侧选择要使用的套件。如果您要使用的套件不在列表中,您可以在“项目”部分为当前项目激活它。
套件是在您发布的镜头中看到的选项卡中配置的。该工具包将 Qt 版本与要使用的编译器相关联。当您选择套件时,您同时选择了 Qt 版本和编译器。请注意,编译器必须与套件中的 Qt 版本兼容。
您也可以尝试使用 /std:c++latest: https://docs.microsoft.com/en-us/cpp/build/reference/std-specify-language-standard-version?view=msvc-160,但您必须首先确保您使用的是正确的工具包(它定义了您使用的编译器)。