讲师中心 微信公众号
AI工具推荐 视频效率加速

CLion如何调试CMake项目

梦静同学_2554

梦静同学_2554

发布时间:2026-09-14 12:05:00

|

781人浏览过

|

来源于php中文网

原创

CLion调试CMake项目需三步:一确认项目被识别为CMake项目(打开CMakeLists.txt而非文件夹);二确保构建类型为Debug(非RelWithDebInfo)并重载项目;三手动配置CMake Application运行配置,指定目标名。

clion如何调试cmake项目

CLion 调试 CMake 项目不需要额外插件或手动启动 GDB/LLDB,只要项目被正确识别为 CMake 项目、目标可执行文件存在、且编译时启用了调试信息(CMAKE_BUILD_TYPE=Debug),就能直接点绿色虫子图标开始调试。

确认项目已被识别为 CMake 项目

CLion 不会自动把任意含 CMakeLists.txt 的目录当 CMake 项目处理。常见误判是识别成 “Generic” 或 “Makefile” 项目,导致无法加载目标、无调试入口。

  • 关闭当前项目,删掉根目录下的 .idea 文件夹(这是 CLion 的私有配置缓存)
  • 重新用 File → Open,**明确选中 CMakeLists.txt 文件**,不是项目文件夹
  • 打开后观察右下角状态栏:若显示 CMake 图标并有构建进度条,说明识别成功;若显示 Makefile 或无反应,说明失败
  • 失败时可在 File → New Project → C++ Executable 新建一个最小 CMake 项目验证环境是否正常

确保 Debug 构建类型已启用

CLion 默认可能用 Release 模式构建,此时生成的二进制不含调试符号,断点会失效、变量无法查看、调用栈为空。

CLion 2026.2.0.1
CLion 2026.2.0.1

CLion 2026.2.0.1 官方历史版本安装包,适合旧项目兼容、开发环境回退、工具链验证、CMake 配置复现和调试行为对比等场景使用。

下载
  • 进入 Settings | Build, Execution, Deployment | CMake
  • 检查 Build type 下拉框是否为 Debug(不是 RelWithDebInfo,它虽带符号但优化可能干扰调试)
  • 确认 CMAKE_CXX_FLAGS 或 CMAKE_C_FLAGS 中没意外加了 -O2 或 -DNDEBUG
  • 改完后点击右上角 Reload project 按钮(或按 Ctrl+Shift+O),等待 CMake 重配置完成

为可执行目标配置调试运行配置

CLion 不会自动为每个 add_executable() 创建调试配置,必须手动绑定——尤其当 CMakeLists.txt 中定义了多个可执行目标(如 main、test、bench)时。

  • 点击右上角运行配置下拉框旁的 ▶ Add Configuration…
  • 选择 CMake Application
  • Target 下拉菜单里选你要调试的那个目标名(例如 main),不是源文件名,也不是可执行文件路径
  • Program arguments 可填命令行参数,Working directory 建议设为 $ProjectFileDir$ 避免路径错误
  • 勾选 Allow parallel run 仅在需要同时调试多个进程时开启,否则默认不勾

断点不命中?先查这三处

断点灰掉或点击后提示 “No executable code found” 是最常卡住人的地方,通常和构建产物路径或符号缺失有关。

  • 检查 cmake-build-debug 目录下是否存在对应目标的可执行文件(如 main),且时间戳新于源码修改时间
  • 在终端中手动运行:./cmake-build-debug/main,看是否报错 cannot execute binary file(可能是架构不匹配)或 not found(动态库缺失)
  • 在 CLion 的 CMake 工具窗口中搜索 debug,确认日志里有类似 -- Build files have been written to: .../cmake-build-debug 和 Building for: ... Debug
  • 如果用了自定义 CMAKE_RUNTIME_OUTPUT_DIRECTORY,需在运行配置的 Executable 字段里手动指定绝对路径,不能只靠 Target 下拉框

真正容易被忽略的是:CLion 的调试器依赖 CMake 缓存中 CMAKE_BUILD_TYPE 的值,而不是你本地 shell 环境变量或命令行传入的 -DCMAKE_BUILD_TYPE=Debug —— 如果你在终端用 cmake 命令手动构建过,CLion 可能仍沿用旧缓存,必须点 Reload 才刷新。

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

相关专题

更多
C++ 跨平台开发
C++ 跨平台开发

本专题聚焦 C++ 在跨平台应用与工程构建中的实战应用,系统讲解 CMake 构建系统、跨平台编译配置、第三方库集成、调试技巧、静态与动态链接库管理等核心知识。通过实战案例(如跨平台工具开发、Linux与Windows编译兼容性项目),帮助学习者掌握 从环境配置到完整跨平台构建的开发能力。

6446

2025.10.17

c++  cmake用法
c++ cmake用法

本专题整合了c++ cmake用法相关教程,阅读专题下面的文章了解更多详细内容。

1571

2025.10.23

C++ 编译构建系统与CMake实战
C++ 编译构建系统与CMake实战

本专题聚焦 C++ 项目的编译与构建体系,系统讲解 CMake 的核心语法、项目结构设计、库与依赖管理、跨平台构建、调试与发布配置。通过完整项目示例,帮助开发者掌握 从源码到可执行程序的工程化构建流程,提升 C++ 项目在实际开发中的可维护性与扩展性。

354

2025.12.13

Revel框架模板渲染与表单验证
Revel框架模板渲染与表单验证

本专题围绕Revel框架视图层开发,介绍模板语法、变量输出、布局复用、表单提交、参数绑定与验证规则,帮助开发者完成安全规范的页面交互。

0

2026.10.16

Revel框架MVC路由与控制器
Revel框架MVC路由与控制器

本专题聚焦Revel框架MVC核心机制,讲解路由定义、控制器Action、参数绑定、请求响应和反向路由,并结合常见场景梳理接口请求处理流程。

0

2026.10.16

Revel框架入门与安装配置
Revel框架入门与安装配置

本专题从Revel框架环境搭建讲起,系统介绍命令行工具安装、项目创建、目录结构、配置文件及热代码重载,帮助开发者快速完成首个Go Web应用。

0

2026.10.16

Linux 新手先学哪些命令
Linux 新手先学哪些命令

Linux新手命令专题汇集终端基础、文件目录操作、文本查看、软件安装和权限管理等入门文章,帮助按实际任务练习常用命令并建立命令行操作习惯。

0

2026.10.15

MySQL 忘记密码怎么办
MySQL 忘记密码怎么办

MySQL忘记密码专题汇集不同版本与系统下的root密码重置方法,覆盖MySQL 5.7、8.0、Mac、Linux及本地集成环境,并提示恢复权限与重新登录的检查步骤。

0

2026.10.15

Vue.js 中 ref 和 reactive 的区别
Vue.js 中 ref 和 reactive 的区别

Vue.js中ref和reactive的区别专题汇集两种响应式API的定义、访问方式、对象解构、侦听与性能取舍等文章,帮助结合实际状态类型选择合适写法。

0

2026.10.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CLion CMake 快速入门教程
CLion CMake 快速入门教程

共0课时 | 0人学习

LLVM CMake构建指南
LLVM CMake构建指南

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn