---
title: 生成JSON文件
description: "compile_commands.json文件是一个JSON格式的文件，它包含了编译器命令行选项和源文件之间的映射关系，用于许多代码编辑器和工具的代码补全、语法检查和代码导航等功能。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevkithistory/devkit_24/usermanual/DevKit_Affinity_0020.html
sourcePath: /source/zh/kunpengdevkithistory/devkit_24/usermanual/DevKit_Affinity_0020.html
indexId: df7510858aa66f0b1352fe0da23a181c4630f62dbe9a0cdde7a559de6031114978
---
# 生成JSON文件

compile_commands.json文件是一个JSON格式的文件，它包含了编译器命令行选项和源文件之间的映射关系，用于许多代码编辑器和工具的代码补全、语法检查和代码导航等功能。

#### 操作步骤

生成compile_commands.json文件的方法取决于你使用的编译器和构建系统。以下是一些常见的方法：


- 对于使用CMake构建的项目，可以通过在CMake命令中添加-DCMAKE_EXPORT_COMPILE_COMMANDS=ON选项来生成compile_commands.json文件。
  例如：

```
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .
```


- 对于使用Makefile构建的项目，可以通过以下方式生成。

  - 方式一：

```
make --always-make --dry-run \
| grep -wE 'gcc|g\+\+|c\+\+' \
| grep -w '\-c' | sed 's|cd.*.\&\&||g' \
| jq -nR '[inputs|{directory:".", command:., file:match(" [^ ]+$").string[1:]}]' \
> compile_commands.json
```


    使用上述命令前需先安装jq软件。本指导仅提供通用操作，更多使用信息请参见jq Manual(https://jqlang.org/manual/)。

  - 方式二：

```
compiledb -n make -f /path/to/Makefile
```


    使用上述命令前需先安装compiledb软件。本指导仅提供通用操作，更多使用信息请参见compiledb(https://github.com/nickdiego/compiledb?tab=readme-ov-file)。
