C/C++工程生成编译数据库文件compile

文章目录

    • 1. 目的
    • 2. 适用于 CMake 的方法
      • 方法1:在工程根目录的 CMakeLists.txt 中开头处增加
      • 方法2:调用 cmake 时, 传入参数
      • 方法3:定义环境变量
    • 3. 适用于 Makefile 的方法

在这里插入图片描述

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

本文来自网络,不代表协通编程立场,如若转载,请注明出处:https://www.net2asp.com/5c7c65ca07.html