C/C++工程生成编译数据库文件compile_commands.json

文章介绍了如何在使用CMake或Makefile构建项目时,生成编译数据库文件compile_commands.json,以便Clang工具如clangd能提供精确的代码补全。对于CMake,可以通过设置CMAKE_EXPORT_COMPILE_COMMANDS变量,或者在调用cmake时添加参数实现。而对于Makefile,可以借助bear工具来生成所需的文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


在这里插入图片描述

1. 目的

Clang 系列的工具(例如 LSP 服务端 clangd)需要读取编译数据库文件 compile_commands.json, 里面以 json 格式给出了具体的编译的命令, 包括编译器路径、文件、编译选项、宏定义等。每个被编译的 .c 和 .cpp 文件分别对应一条完整的编译命令。Clang 系列工具根据这个命令, 可以给出准确的代码补全。

2. 适用于 CMake 的方法

方法1:在工程根目录的 CMakeLists.txt 中开头处增加

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

方法2:调用 cmake 时, 传入参数

-DCMAKE_EXPORT_COMPILE_COMMANDS=ON 参数

方法3:定义环境变量

在当前 shell 中输入, 或直接编辑 ~/.bashrc

export CMAKE_EXPORT_COMPILE_COMMANDS=1

3. 适用于 Makefile 的方法

需要安装 bear 这一工具

sudo apt install bear

在工程目录下,原本的 make 命令前, 增加 bear --, 就可以生成 compile_commands.json 了:

bear -- make
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值