CMAKE_EXPORT_COMPILE_COMMANDS

在 3.5 版本加入.

在生成期间启用/禁用编译命令的输出。

如果启用,将生成一个 compile_commands.json 文件,其中包含机器可读形式的项目所有翻译单元的确切编译器调用。 JSON 文件的格式如下所示:

[
  {
    "directory": "/home/user/development/project",
    "command": "/usr/bin/c++ ... -c ../foo/foo.cc",
    "file": "../foo/foo.cc"
  },

  ...

  {
    "directory": "/home/user/development/project",
    "command": "/usr/bin/c++ ... -c ../foo/bar.cc",
    "file": "../foo/bar.cc"
  }
]

这由 CMAKE_EXPORT_COMPILE_COMMANDS 环境变量初始化,并为所有目标初始化 EXPORT_COMPILE_COMMANDS 目标属性。

备注

此选项仅由 Makefile Generators 和 Ninja Generators 实现。它在其他生成器上被忽略。

此选项目前不能很好地与 UNITY_BUILD 目标属性或 CMAKE_UNITY_BUILD 变量结合使用。