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

如何在Visual Studio 2019的CMake C++项目中关闭编译器优化?

在Visual Studio中通过CMake关闭编译器优化(实现Lambda调试/变量监视)

方法一:修改CMakeLists.txt(全局/目标级配置)

这是最可靠的方式,配置会同步到Visual Studio的项目设置中:

全局项目配置

在CMakeLists.txt的合适位置添加以下代码,针对Debug模式关闭所有优化并启用调试信息:

# 针对C++项目的Debug配置
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Od /Zi")
# 若为C项目,添加对应配置
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} /Od /Zi")
  • /Od:Visual Studio编译器专属选项,直接关闭所有优化
  • /Zi:生成程序数据库,保证调试器能正确识别变量和代码结构

特定目标配置

如果只想给某个编译目标(比如可执行文件/库)关闭优化,用以下代码替换全局配置:

# 将「你的目标名」替换为实际的CMake目标名称
target_compile_options(你的目标名 PRIVATE $<$<CONFIG:Debug>:/Od /Zi>)

方法二:直接在Visual Studio界面修改

如果不想修改CMake脚本,可通过VS属性界面临时调整:

  1. 在「解决方案资源管理器」中右键你的CMake目标,选择「属性」
  2. 依次展开「配置属性」→「C/C++」→「优化」
  3. 将「优化」选项设置为「禁用(/Od)」
  4. 切换到「C/C++」→「常规」,确保「调试信息格式」设置为「程序数据库(/Zi)」或「编辑并继续(/ZI)」

完成以上配置后,重新生成Debug版本项目,即可正常在监视窗口查看变量内容,也能进入lambda函数进行单步调试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 18:15:07