是的,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 图形化浏览代码依赖,快速理解代码结构

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐