如何为C++ Bazel项目生成compile_commands.json

Pic*_*ent 10 c++ bazel

在C++ Bazel项目中,我想使用像Clang ToolsRTags工具.

为此我需要生成compile_commands.json文件.

对于使用CMAKE_EXPORT_COMPILE_COMMANDS的 CMake,该解决方案是微不足道的.

对于简单的Makefile,您仍然可以使用Bear工具.

但是AFAIK没有内置的C++ Bazel项目解决方案.

Pic*_*ent 8

额外的信息:

  • Bear目前还没与Bazel合作:这个问题
  • 有关compile_command.json的详细文档可以在这里找到.

建议的解决方案:

在谷歌搜索之后我发现了要点:使用Bazel生成compile_commands.json文件的基础知识.

它工作正常,我已经编写 了一个带有bash脚本的自动解决方案 < - 我的解决方案

替代方案:

同样在GitHub上,您可以找到:


小智 5

要添加到其他答案列出的替代方案......

Hedron 的 Bazel 编译命令提取器 (GitHub)刚刚发布,我认为它可以满足您的需求。从 README 来看,它的目标是“为 Bazel 用户提供 (Objective-)C(++) 的跨平台自动完成功能,使开发更加高效和有趣[...,并且]将 Bazel 构建操作导出为能够实现compile_commands.json出色功能的格式。工具与 Bazel 分离。”

免责声明:我为制造...的公司工作hedronvision/bazel-compile-commands-extractor,但我每天都使用它,在我个人看来,它非常好!