Bazel 如何生成 clangd/clang-tidy 所需的 compile_commands.json
VSCode 中如何使用 clang-tidy
- 安装 clangd 插件
- 禁用 ms-cpp 插件(VSCode 会自动提示有冲突)
- 生成 clangd 所需的 compile_commands.json 文件
如何生成 compile_commands.json 文件
- 修改 WORKSPACE,添加以下内容
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
name = "hedron_compile_commands",
# 建议把下面两处 commit hash 换成 github 上最新的版本
url = "https://github.com/hedronvision/bazel-compile-commands-extractor/archive/ed994039a951b736091776d677f324b3903ef939.tar.gz",
strip_prefix = "bazel-compile-commands-extractor-ed994039a951b736091776d677f324b3903ef939",
)
load("@hedron_compile_commands//:workspace_setup.bzl", "hedron_compile_commands_setup")
hedron_compile_commands_setup()
- 在 BUILD 文件中增加一个用于生成 compile_commands.json 文件的 target
load("@hedron_compile_commands//:refresh_compile_commands.bzl", "refresh_compile_commands")
refresh_compile_commands(
name = "refresh_compile_commands",
# 指定目标 target 及其编译选项/参数(.bazelrc 中已有的参数/选项无需重复添加)
targets = {
"//src/my_component1:my_executable1": "--config=aarch64_qnx",
"//src/my_component2:my_executable2": "--config=aarch64_linux",
},
)
- 运行
bazel run
命令生成 compile_commands.json 文件
bazel run :refresh_compile_commands
注意事项
- 需要保证能够访问 github
参考链接
本文作者:Zijian/TENG(微信公众号:好记性如烂笔头),转载请注明原文链接:https://www.cnblogs.com/tengzijian/p/17462562.html
标签:
bazel
, clangd
, compile_commands.json
, clang-tidy
, clang
, BUILD
, WORKSPACE
, Hedron
, 编译
, 静态检查
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
2022-08-06 C++ 拷贝文件最简洁、高效的做法
2022-08-06 Linux ls 段错误 segement fault core dump