VSCode的clangd插件介绍及安装

vscode使用clangd:
clangd能做很多代码解析工作,vscode使用clangd,能简化代码阅读,主要体现在两方面:
1.支持inlay功能,可以把函数的形参与实参一同显示出来:

这里白色高亮冒号的是函数形参,而后面的是函数调用时传入的实参
2.支持仅在已编译的文件中做跳转、索引,不会索引到工程不使用的文件,大大简化了代码阅读时搜索工作:


比如这个unmap回调,本身有一大堆函数,但我只编译了arm-smmu-v3.c驱动,它就只显示这个驱动
更多

配置方法如下:
1.编译kernel
2.生成compile commands文件。在kernel目录下运行如下命令:
a../scripts/clang-tools/gen_compile_commands.py -d build
b.这样在kernel目录下会有一个文件叫compile_commands.json
3.安装vscode clangd插件,如果要求安装host端clangd工具,也一并装上
4.关闭C/C++ InteliSence插件
5.配置clangd插件。在clangd的插件配置里, 选Add Item,依次加上这些项:
--compile-commands-dir=${workspaceFolder}
      --background-index
      --completion-style=detailed
      --header-insertion=never
      -log=info

1.解决clangd的运行错误
      kernel目录树下写文件   .clangd,内容为:
CompileFlags:    
  Remove: -mabi=lp64   
如果报错:-fconserve-stack,运行:sed -i 's/-fconserve-stack//g' compile_commands.json  可解决。
2.重启vscode
3.观察output窗口,如果没有报错,则说明clangd已生效:


补充说明1 也可以用bear make来生成compile_commands.json,但这种方式要删除
-fconserve-stack,脚本如下:
cat gen_compile_commands_bear.sh

#!/bin/bash
#sudo apt-get install bear
make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 O=build clean
make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64  O=build  bsta1000b_defconfig
bear make CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 O=build -j32
sed -i '/"-fconserve-stack"/d' compile_commands.json
2 inlay功能(函数形实参那个)可以toggle,方法是:Ctrl + Shift + p,输入inlay,点回车,重复操作就可以打开/关闭inlay
注意:
clangd在跳转时不会索引到你没编译到的文件,因此如果要搜索更广还是需要用搜索而不是跳转

参考资料
https://blog.csdn.net/xhnmdlfl/article/details/117911630
https://blog.csdn.net/airhcoaz/article/details/124850316
https://zhuanlan.zhihu.com/p/139480735

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值