如何修复 Qt 需要 C++17 编译器?

Posted

技术标签:

【中文标题】如何修复 Qt 需要 C++17 编译器?【英文标题】:How to fix Qt requires a C++17 compiler? 【发布时间】:2022-01-19 05:23:18 【问题描述】:

我使用的是柯南安装的 Qt-6.2.2。 我在 VS-2019 中创建了 Qt Widgets Project,将语言切换为 std:c++17,将 /Zc:__cplusplus 添加到其他选项中。

由于这是柯南安装的QT,它没有Qt.props,所以我手动创建了一个包含conan install生成的props文件。

但它仍然抱怨:

严重性代码描述项目文件行抑制状态 错误 C1189 #error:“Qt 需要 C++17 编译器,以及合适的 __cplusplus 的值。在 MSVC 上,您必须通过 /Zc:__cplusplus 选项 编译器。” QtWidgetsApplication2 D:.conan\579957\1\include\QtCore\qglobal.h 94

【问题讨论】:

【参考方案1】:

尝试设置选项-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew -permissive- -Zc:__cplusplus -Zc:externConstexpr -utf-8 -w34100 -w34189 -w44996 -w44456 -w44457 -w44458

我在 VS2019 中使用 Qt6.2.0 和 Qt-VS-Tools2.7.2 时遇到了同样的问题。

只设置/Zc:__cplusplus 错误信息建议没有解决它, 但设置上面的选项对我有用。 (我从自动生成的旧项目中复制它们)

【讨论】:

以上是关于如何修复 Qt 需要 C++17 编译器?的主要内容,如果未能解决你的问题,请参考以下文章

Visual C++ 编译器 2012 年 11 月 CTP 与 Qt Creator for C++11

Qt creator 如何设置静态编译

ubuntu下qt如何编译c++源文件?

17.3 构建LinuxPC端QT软件上的ARM编译套件并进行测试

Qt creator 如何设置静态编译

如何编译C/Fortran动态/静态链接库