环境:vscode+clangd+EIDE开发开发单片机(C51 keilMDK IAR)。
vscode+远程+clangd+arm-linux-gcc(交叉编译工具链)。
(1)首先clang(clangd)是兼容gcc的,也就是兼容arm-linux-gcc(交叉编译工具链),所以使用第三方软件bear追踪make编译uboot或者内核源码生成的compile_commands.json文件是完全可以被clangd识别的。
(2)clangd与kei C51的兼容性。经过我的测试使用vscode+EIDE+clangd导入C51工程后,生成的compile_commands.json文件虽然也能够被clangd识别,但是存在好多错误例如找不到str、sbit这些关键字的定义,无法找到某些函数。我咨询过EIDE论坛。他们的说法是clang并不兼容C51、ARMGCC(keil MDK的编译器)、IAR编译器(iccarm.exe),但是clang是兼容gcc的,因此建议我还是使用vscode的c/c++插件来追踪keil c51的相关全局变量或者函数等。
我发现使用clangd插件追踪vscode+keil C51工程在涉及到reg51.h头文件中定义的内容或者keil C51软件再带的配置例如“code”关键字,clangd无法追踪,另外需要自己在.clangd文件中添加头文件路径。其他的情况还好。



最低0.47元/天 解锁文章
6万+

被折叠的 条评论
为什么被折叠?



