如何在 Qt .pro 项目文件中指定 MSVC 版本?

时间:2021-03-30 17:33:58

标签: qt qt-creator

安装的Visual Studio版本是2019(支持C++20)。 Qt Creator 如何被告知使用它?

当前的 Qt 套件: enter image description here

.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

1 个答案:

答案 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,但您必须首先确保您使用的是正确的工具包(它定义了您使用的编译器)。

相关问题