本文讲述如何在vscode里配置clangd来实现跳转,项目工程使用CMake,比较简单

一 安装clangd及其VScode插件

VSCode里的cland插件是依赖本地安装的clangd,所以需要事先安装好

sudo apt install clangd

然后就是安装vscode插件,在extension里搜索clangd,点击安装

注意这里要禁用微软的 C/C++ IntelliSense插件

二 配置CMake

可以在项目工程的CMakeLists.txt里加上

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

或者在编译时开启这个选项,

cmake -S . -B build -DCMAKE_EXPORT_COMPILE_COMMANDS=ON

编译后会在build目录下生成compile_commands.json,这个就是clangd解析需要的文件

默认clangd会去找项目根目录下的compile_commands.json,但是一般来说这个文件都是在build目录下,那么此时有2种办法让clangd找到这个json文件

1. 使用软链接

在根目录下执行,

ln -s build/compile_commands.json compile_commands.json

2. 修改项目的vscode配置

在当前目录下,创建.vscode/settings.json,然后添加以下内容,

{
    "clangd.arguments": [
        "--compile-commands-dir=build"
    ]
}

这个build就是我们的build目录

三 重启

Ctrl+Shift+P,然后选择clangd: Restart language server即可