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

如何在Visual Studio 2019中启用CXX23语言标准及解决CMake编译报错

解决CMake在Visual Studio中无法识别CXX23编译标志的问题

核心原因

MSVC 2019本身对C++23的支持是部分且需要手动开启特定编译器选项的,CMake旧版本可能没适配MSVC 2019的CXX23启用方式,而QtDesigner应该是直接调用了编译器原生选项才正常编译。

可行解决方案

方案1:在CMakeLists.txt中手动指定编译器选项

跳过CMake的标准检测逻辑,直接给MSVC添加C++23相关编译标志:

if(MSVC)
  # 启用C++23并允许编译器扩展
  target_compile_options(你的项目目标名 PRIVATE "/std:c++latest" "/permissive-")
  # 若需严格遵循标准(不启用扩展),可将"/std:c++latest"替换为"/std:c++23"
endif()

如果要给所有项目目标全局设置,把target_compile_options替换为:

if(MSVC)
  add_compile_options("/std:c++latest" "/permissive-")
endif()

方案2:升级CMake版本

CMake 3.20及以上版本开始正式支持MSVC的CXX23标准标识,若当前CMake版本低于3.20,升级后可直接在CMakeLists.txt中配置:

set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS ON) # 对应报错中启用编译器扩展的需求

方案3:在Visual Studio中手动调整项目属性

  1. 右键项目选择「属性」打开属性面板
  2. 依次进入配置属性→C/C++→语言
  3. 将「C++语言标准」设置为ISO C++23 标准(/std:c++23)或预览 - 最新的 C++ 工作草案(/std:c++latest)
  4. 确保「允许编译器扩展」选项设置为是(/permissive-)(匹配报错里的需求)

额外说明

MSVC 2019对C23的支持并不完全,部分新特性可能无法正常使用。如果项目依赖完整的C23特性,建议升级到Visual Studio 2022,它对C++23的支持更全面。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 05:35:55