Rafa / 菲娜 | 小王子
189 字
1 分钟
【踩坑】在vscode中使用clang-tidy
在vscode中使用clang-tidy
在vscode中进行ros开发的时候发现,ros noetic使用catkin build -DCMAKE_EXPORT_COMPILE_COMMANDS=YES编译ros包时,编译器会将每个包的compile_commands.json文件放到build下不同包的目录下:build/<package-name>/compile_commands.json。让clangd无法正确找到compile_commands.json导致检查出错。
解决方案是使用是将各个包的compile_commands.json合并到目录的compile_commands.json下。
在ros包的根目录下:
find build -name compile_commands.json -exec cat {} \; | \ jq -s 'add' > compile_commands.json如果没有 jq 可以进行安装:
sudo apt install jq最后在项目目录下创建.vscode/settings.json,进行如下配置:
{ "clangd.arguments": [ "--compile-commands-dir=${workspaceFolder}/<ros包根目录相对路径>", "--background-index", "--clang-tidy", "--completion-style=detailed", "--header-insertion=never" ]}TIP可以通过配置catkin行为让其每次都自动生成
compile_commands.json文件:Terminal window catkin config --cmake-args -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
【踩坑】在vscode中使用clang-tidy
http://onemom.top/posts/vscode_clangd/