环境:

Ubuntu18.04

安装了bear 版本是2.3.11-1,使用bear --version查看的

windows下已经安装了vscode 1.98.2并且安装了clangd插件已经clangd server.

问题:使用bear工具编译下x210开发板的uboot源码,生成了compile_commands.json,但是重新打开vscode或者右键---》命令面板---》clangd: Reset Language Server,都无法解析compile_commands.json,当然也无法生产“.cache”文件夹。

具体编译脚本如下

rm .cache -rf
rm compile_commands.json
bear make distclean
bear make infinity2m_spinand_defconfig
bear make -j8 > build_log
root@ubuntu:~/porting_ssd202d/Purple-Pi-R1/boot_src# bear --version
bear 2.3.11

后来我在“知乎”上查找类似问题。找到一篇文章写的很好。

https://zhuanlan.zhihu.com/p/26081028223

里面提到,bear 3.0版本之前的编译是

bear make # bear3.0之前的版本        我的是2.3.11满足
bear -- make # bear3.0之后的版本

他在文章中提到需要将生成的compile_commands.json中的“cc”字样用交叉编译工具“arm-linux-gcc”(我的是这个名字,创建了一个符号链接)

root@ubuntu:~/porting_ssd202d/Purple-Pi-R1/boot_src# which arm-linux-gcc
/usr/local/arm/arm-2009q3/bin/arm-linux-gcc
root@ubuntu:~/porting_ssd202d/Purple-Pi-R1/boot_src# 

最终使用结果如下:

最后重新打开vscode或者右键---》命令面板---》clangd: Reset Language Server,clangd就自动解析compile_command.json了.

具体原因:bear 默认使用的是cc编译器。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐