如何为 C++ Bazel 项目生成 compile_commands.json
How to generate compile_commands.json for a C++ Bazel project
在 C++ 中 Bazel project, I want to use tools like Clang Tools or RTags,等等
为此,我需要生成一个 compile_commands.json 文件。
使用 CMAKE_EXPORT_COMPILE_COMMANDS 的 CMake 解决方案很简单。
对于简单的 Makefile,您仍然可以使用 Bear 工具。
但是 AFAIK 没有针对 C++ Bazel 项目的内置解决方案。
补充信息:
- Bear 目前无法使用 Bazel:this issue
- 可以找到关于 compile_command.json 的很好的文档 here。
建议的解决方案:
谷歌搜索后我发现 gist:Basics of generating a compile_commands.json file with Bazel。
它工作正常,我已经写了
an automated solution with bash scripts <- 我的解决方案
选择:
同样在 GitHub 上,您可以找到:
- Kythe: 使用 Bazel 动作侦听器
- github.com/grailbio/bazel-compilation-database: 提供脚本和 bazel 规则。
要添加到其他答案列出的备选方案中...
Hedron's Compile Commands Extractor for Bazel (GitHub) 刚刚发布,我认为可以做你想做的事。从 README 来看,它的目标是“为 Bazel 用户提供 (Objective-)C(++) 的跨平台自动完成功能,使开发更加高效和有趣[...,] 将 Bazel 构建操作导出到compile_commands.json
支持与 Bazel 分离的出色工具的格式。"
免责声明:我在制造hedronvision/bazel-compile-commands-extractor
的公司工作......但我每天都在使用它,我个人认为它非常好!
在 C++ 中 Bazel project, I want to use tools like Clang Tools or RTags,等等
为此,我需要生成一个 compile_commands.json 文件。
使用 CMAKE_EXPORT_COMPILE_COMMANDS 的 CMake 解决方案很简单。
对于简单的 Makefile,您仍然可以使用 Bear 工具。
但是 AFAIK 没有针对 C++ Bazel 项目的内置解决方案。
补充信息:
- Bear 目前无法使用 Bazel:this issue
- 可以找到关于 compile_command.json 的很好的文档 here。
建议的解决方案:
谷歌搜索后我发现 gist:Basics of generating a compile_commands.json file with Bazel。
它工作正常,我已经写了 an automated solution with bash scripts <- 我的解决方案
选择:
同样在 GitHub 上,您可以找到:
- Kythe: 使用 Bazel 动作侦听器
- github.com/grailbio/bazel-compilation-database: 提供脚本和 bazel 规则。
要添加到其他答案列出的备选方案中...
Hedron's Compile Commands Extractor for Bazel (GitHub) 刚刚发布,我认为可以做你想做的事。从 README 来看,它的目标是“为 Bazel 用户提供 (Objective-)C(++) 的跨平台自动完成功能,使开发更加高效和有趣[...,] 将 Bazel 构建操作导出到compile_commands.json
支持与 Bazel 分离的出色工具的格式。"
免责声明:我在制造hedronvision/bazel-compile-commands-extractor
的公司工作......但我每天都在使用它,我个人认为它非常好!