当前位置: 首页 > news >正文

生成 `compile_commands.json`

是的,CLion + CMake 可以生成 compile_commands.json 文件,这是许多工具(包括 SourcetrailclangdVSCode 等)用于了解项目编译细节的重要文件。


✅ 如何在 CLion 中生成 compile_commands.json

CLion 从 2020.1 版本开始已经原生支持生成 compile_commands.json,你只需要简单配置一下即可。


🔧 方法一:通过 CLion 设置生成 compile_commands.json

  1. 打开 CLion。

  2. 进入菜单:
    FileSettings(或 CLionPreferences on macOS)→ Advanced SettingsCMake

  3. 找到选项:

    [✓] Generate compilation database
    

    ✅ 勾选它

  4. CLion 会在每次 CMake 配置时自动生成或更新 compile_commands.json

📁 生成的位置一般是:

<project_root>/cmake-build-debug/compile_commands.json

或者根据你的 build 目录,比如:

<project_root>/cmake-build-release/compile_commands.json

🔁 方法二:手动生成(命令行)

如果你是用命令行编译 CMake 项目,也可以加上以下参数生成:

cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -B build

这将在 build/ 目录下生成 compile_commands.json


📎 提示:将 compile_commands.json 移动到项目根目录(可选)

有些工具要求它在项目根目录:

cp cmake-build-debug/compile_commands.json .

或者使用 symlink(推荐):

ln -s cmake-build-debug/compile_commands.json .

💡 用途:Sourcetrail 使用 compile_commands.json

你可以在 Sourcetrail 中选择:

  • Language: C++
  • Input type: Compilation Database
  • 然后选择你的 compile_commands.json 路径

你想知道 CLion 如何配合 Sourcetrail 使用,对吧?我给你梳理个简单实用的方案,帮助你用 CLion + Sourcetrail 来高效浏览和理解代码。


🛠️ CLion 和 Sourcetrail 配合使用的步骤


1. 生成 compile_commands.json 文件(CLion 生成)

Sourcetrail 依赖 compile_commands.json 来分析 C/C++ 项目。

  • CLion 自动生成

    • 进入 FileSettings(或 macOS CLionPreferences)→ Build, Execution, DeploymentCMake
    • 找到并勾选 “Generate compilation database”
    • 重新构建项目,compile_commands.json 会生成在你的 build 目录中(如 cmake-build-debug/

2. 打开 Sourcetrail 并导入项目
  • 启动 Sourcetrail
  • 选择 New Project
  • 语言选择 C++
  • 选择项目根目录
  • 选择输入类型为 Compilation Database
  • 选择刚才 CLion 生成的 compile_commands.json 文件路径(例如:cmake-build-debug/compile_commands.json
  • 点击开始索引(Index)

3. 在 Sourcetrail 中设置用 CLion 打开代码
  • Sourcetrail 菜单中,选择 EditPreferences

  • Editor 里,将编辑器命令设置为:

    clion --line %l %f
    

    这里 %f 是文件路径,%l 是行号,Sourcetrail 会根据点击的符号打开对应文件和行号。

  • 确保你的系统能在终端通过 clion 命令打开 CLion(CLion 里可以通过 ToolsCreate Command-line Launcher 来创建这个命令)。


4. 开始用 Sourcetrail 浏览代码,遇到不懂的地方,点击符号就用 CLion 打开对应代码文件,直接跳转。

📝 总结

工具作用
CLion编写、调试、生成 compile_commands.json
Sourcetrail图形化浏览代码依赖,快速理解代码结构

http://www.lryc.cn/news/582037.html

相关文章:

  • RESTful风格
  • Java学习——MP3SPI介绍
  • 【BTC】比特币系统的具体实现
  • 【机器学习实战】线性回归分析
  • 【redis相关】
  • QML中的Item
  • TCP 事务全面研究:从原理到优化与故障排除
  • 百度开源文心 4.5 系列开源大模型 GitCode 本地化部署,硅基流动:文心 vs. DeepSeek vs. Qwen 3.0 深度测评
  • 剑指offer第2版:动态规划+记忆化搜索
  • 使用make编译ROS2节点
  • 如果让计算机理解人类语言- Word2Vec(Word to Vector,2013)
  • 利用英译法案例演示RNN中的注意力机制(基于PyTorch)
  • 超越存在性检查:掌握Linux中`ls`命令的终极指南
  • .net core mvc部署到win10本地的Ubuntu上
  • 【Linux | 网络】网络基础
  • 多模式编译器——vim的使用
  • FastMCP:用于构建MCP服务器的开源Python框架
  • UE 材质 变体 概念
  • C++11标准库算法:深入理解std::none_of
  • Pandas 学习教程
  • T01_神经网络
  • 【python实用小脚本-130】基于 Python 的 HTML 到 Markdown 转换工具:实现高效文档格式转换
  • 钉钉企业内部机器人实现单聊会话互动开发指南
  • 【LeetCode 热题 100】234. 回文链表——快慢指针+反转链表
  • TypeScript 基础与类型系统详解:从入门到实践
  • TB62216FTG,TB62216FNG东芝BiCD集成电路硅单片,PWM斩波型电机驱动集成电路
  • 【Chrome】‘Good助手‘ 扩展程序使用介绍
  • 【操作系统】页面置换
  • OpenWebUI(2)源码学习-后端retrieval检索模块
  • vulnhub靶机渗透:PWNLAB: INIT