You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决MSVC 2019编译Qt项目时的QRunnable constexpr构造器错误?

解决MSVC2019编译Qt项目时QRunnable构造函数的E2422错误

以下是几个可行的排查和解决方向:

  • 检查MSVC 2019编译器版本
    确保你的MSVC 2019安装了v16.11及以后的更新包。早期版本的MSVC 2019对C++17 constexpr构造函数的支持存在兼容性问题,无法正确处理Qt中这类默认生成的constexpr构造函数。打开Visual Studio Installer,选择"修改",在"单个组件"里勾选最新的MSVC v142生成工具更新包。

  • 调整项目C++语言标准
    在项目属性中,将C语言标准设置为ISO C++17 标准(/std:c++17)或更高版本。部分Qt版本的代码依赖C17特性,若项目仍使用C14标准,会触发这类constexpr相关的编译错误。操作路径:项目属性 -> 配置属性 -> C/C -> 语言 -> C++语言标准。

  • 同步Qt VS Tools项目配置

    1. 打开Qt VS Tools的"Qt Project Settings",确认当前选中的Qt版本是你安装的_msvc2019_64版本,且Debug/Release配置与项目当前配置一致。
    2. 点击"Run qmake"重新生成项目makefile,确保Qt的编译配置完全同步到MSVC项目中。
  • 临时修改Qt头文件(workaround)
    若上述方法无效,可临时修改Qt头文件qrunnable.h中的代码:将constexpr QRunnable() noexcept = default;改为QRunnable() noexcept = default;。注意这是临时解决方法,后续更新Qt版本需重新处理,操作前建议备份原文件。

内容的提问来源于stack exchange,提问作者Ultra_Igor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 10:05:35