clangd安装配置
树莓派4B,Ubuntu24.04 LTS安装clangd-19。
安装clangd
通过 apt search clangd 搜索,找到可用的clangd版本,这里选择 clangd-19。
$ sudo apt-get install clangd-19验证安装:
$ clangd-19 --version
Ubuntu clangd version 19.1.1 (1ubuntu1~24.04.2)
Features: linux+grpc
Platform: aarch64-unknown-linux-gnu配置编辑器插件
clangd 通过语言服务器协议运行,支持 LSP 的编辑器可与 clangd 通信,以提供代码补全、诊断、转到定义等功能。原则上,clangd 应能与任何一种编辑器协同工作,但功能集和界面可能会有所不同。
VSCode
安装插件
依次选择View –> Extensions,在MARKETPLACE搜索框中输入 clangd,点击安装。
WARNING
确保微软C/C++插件未安装,否则可能会导致clangd无法启动。
配置clangd插件
如果安装clangd后没有 sudo update-alternatives --install /usr/bin/clangd clangd /usr/bin/clangd-12 100 修改软连接,则需要vscode中clangd插件的配置。
点击clangd插件边上的齿轮按钮,选择Setting,打开设置页面,找到clangd:Path选项,输入 /usr/bin/clangd-19。 
重新vscode启动后,您应该能看到错误下方的红色下划线,并获得丰富的代码补全信息,包括函数参数等。
Vim
占坑中...
Neovim
占坑中...
项目配置
为了理解您的源代码,clangd 需要知道您的编译标记。(这只是 C++ 中的一个事实,源文件并不是自包含的)。
默认情况下,clangd 会假定你的代码是以 clang some_file.cc 的形式编译的,你可能会得到一些关于缺少 #included 文件等的虚假错误。有几种方法可以解决这个问题。
compile_commands.json 该文件为项目中的每个源文件提供编译命令。它通常由工具生成。
clangd会在编辑文件的父目录和名为 build/ 的子目录中查找它。例如,如果编辑 $SRC/gui/window.cpp,我们会在 $SRC/gui/、$SRC/gui/build/、$SRC/、$SRC/build/、...
基于CMake
执行 cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 生成 compile_commands.json 文件。
compile_commands.json 将被写入你的执行构建时的目录。如果编译目录是 $SRC 或 $SRC/build,clangd 会找到它。否则,请将其链接或复制到源代码树的根目录 $SRC。
$ ln -s ~/myproject-build/compile_commands.json ~/myproject/其他构建系统使用Bear
Bear 是一个构建系统分析工具,它可以将构建系统生成的命令行输出为 compile_commands.json 文件。
对于基于 make 的构建,可以运行 make clean; bear -- make 生成文件。
TIP
在windows下,可以使用与Bear类似的工具 compiledb。
如果项目中的所有文件都使用相同的编译标志,可以将这些标志一行一行地放入源代码根目录下的 compile_flags.txt 。
Clangd 会假定编译命令是 clang $FLAGS some_file.cc。
如果你的项目非常简单,手工创建该文件是一个合理的起点。不过,后台索引将不起作用,因为 Clangd 无法确定哪些文件是项目源代码。
如果存在 compile_commands.json,该文件将被忽略。