一、C/C++插件和clangd插件的冲突
(作者是新人,第一次发csdn文章,发表的不好勿喷,若有错误希望大家指出)他们之间主要的冲突在于插件的intelliSenseEngine功能,所以,其实可以不必卸载,也不必禁用C/C++插件,只需要在vscode的settings.json加上
"C_Cpp.intelliSenseEngine": "disabled"
这句话就行了,意思就是禁用C/C++扩展自带的 IntelliSense 引擎。
二、配置步骤
安装clangd插件
- 安装clangd插件,这里有个坑,就是因为安装插件的过程中,其实clangd是从github上下载下来的,但是有时候对github的访问可能访问不到,需要翻墙,所以作者建议自己去github上找,并安装到自己的系统里。
- 安装并解压完之后,需要在vscode上配置clangd的所在路径,clangd在生成文件的bin目录下,具体步骤是右击插件、设置、找到Clangd:Path并设置路径,也可以在settings.json自己输入设置,原理一样。
- 设置完clangd路径,接下里就得生成compile_commands.json文件了,clangd就是基于这个文件去进行跳转的,若项目使用的不是CMake,那么可以安装bear工具或者compiledb工具配合Makefile去生成compile_commands.json,若项目使用的是CMake,那么可以调用以下命令(在build目录下)
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 ..
然后再调用make,就能生成compile_commands.json文件了,然后在clangd插件的设置里Clangd: Arguments添加项(${workspaceFolder}是根目录),设置compile_commands.json所在的路径,同理也可以在settings.json里设置,
--compile-commands-dir=${workspaceFolder}/build
最后重启vscode,就能实现跳转啦!