vscode+EIDE+Clangd环境导入keil C51以及MDK工程
我最近一直在使用vscode+clangd的编译环境替代了vscode自带的c/c++插件。感觉clangd的环境更加优秀,能够更好找到函数、全局变量等定义调用等。
如果使用keil C51以及MDK环境开发51单片机或者STM32单片机就需要使用到了EIDE这个插件这个插件现在能够自动生成compile_commands.json文件,这样clangd插件就可以找到并生成“.cache”文件夹。就可以愉快的玩耍了。(c/c++就可以先禁掉了)。下面是具体过程。
一、以下是keil MDK工程导入方法。
这里选择“no”的好处就是EIDE插件生成相关文件在指定文件夹中,不会污染工程文件。
EIDE插件自动生成这些重要文件以及文件夹。
其中build文件夹下的子文件夹有clangd需要的compile_commands.json文件。
.clangd文件夹可以指定头文件路径。
还是好多头文件、函数无法找到。
这个时候就需要在clangd插件中指定“compile_commands.json”所在路径了
最后,右键---》命令面板---》clangd:Restart Language Server
二、keil C51工程EIDE调入
到这里自动生成EIDE相关文件尤其是build文件夹以及.clangd文件,不用做什么build文件夹下的compile_commands.json文件已经被clangd识别了。
但是现在有一个问题就是reg51文件找不到。这就需要用的.clangd文件了
改成:
右键---》命令面板---》Clangd:Restart Language Server
最后:需要注意的是路径、文件名不能有中文,否则无法识别。
keil C51导入工程的时候也可以自己指定一个文件夹,但是需要自己在clangd的配置中指定compile_commands.json的路径。以及在工程文件所在文件夹下创建一个.clangd文件夹,指定头文件reg51.h所在路径。
也就说EIDE自己生成的.clangd文件不起作用。(可能是一个bug)