Clangd配置

手动编译clangd

CMake版本要求

根据llvm警告,cmake版本不低于3.20.0

通过下载二进制程序直接使用

https://github.com/Kitware/CMake/releases/在此链接下下载自己架构对应的cmake二进制程序

1
2
3
4
#解压cmake
tar -zxvf cmake-4.0.0-rc4-linux-x86_64.tar.gz
#添加环境变量
export PATH=$HOME/cmake-4.0.0-rc4-linux-x86_64/bin:$PATH

编译clangd

下载llvm-project源码包

https://github.com/llvm/llvm-project/releases/download/llvmorg-20.1.0/llvm-project-20.1.0.src.tar.xz此链接下下载llvm-project-20.1.0.src.tar.xz

编译clangd

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
tar -xvf llvm-project-20.1.0.src.tar.xz
mkdir -p llvm-project-20.1.0.src/build
cd llvm-project-20.1.0.src/build

# 指定安装目录到 $HOME/llvm-20.1.0
cmake -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=$HOME/llvm-20.1.0 \
-DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra" \
../llvm

# 编译并安装
make -j$(nproc) install

#添加环境变量
export PATH=$HOME/llvm-20.1.0/bin:$PATH

vscode配置

在.vscode下面添加settings.json

1
2
3
4
5
6
7
8
9
10
11
12
13
{
"C_Cpp.errorSquiggles": "disabled",
"C_Cpp.dimInactiveRegions": false,
"clangd.path": "/usr/bin/clangd-13",
"clangd.arguments": [
"--background-index=false",
"--pch-storage=memory",
"--log=info",
"--header-insertion=never",
"--clang-tidy",
"--compile-commands-dir=${workspaceFolder}"
],
}

在当前工作目录下添加.clangd

1
2
3
CompileFlags:
Add: --target=aarch64-linux-gnu #交叉编译环境才需要添加此行
Remove: [-mno-direct-extern-access, -fconserve-stack, -fno-allow-store-data-races, -mfunction-return=thunk-extern, -mindirect-branch-cs-prefix, -mindirect-branch-register, -mindirect-branch=thunk-extern, -mskip-rax-setup, -mpreferred-stack-boundary=3, -mno-fp-ret-in-387, -fno-var-tracking-assignments, -mabi=lp64]

永久添加环境变量

1
2
#在~/.zshrc或者~/.bashrc中添加如下行
export PATH=$HOME/llvm-20.0.1/bin:$PATH export PATH=$HOME/cmake-4.0.0-rc4-linux-aarch64/bin:$PATH

生成compile_commands.json

1
2
bear make -j100
bear make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j 8

bear源码编译

1
2
3
4
5
6
7
8
9
10
11
# 下载 bear 源码
git clone https://github.com/rizsotto/Bear.git
cd Bear

# 生成 Makefile 并编译(假设你已经有 cmake)
cmake -DCMAKE_INSTALL_PREFIX=$HOME/bear .
make -j$(nproc)
make install # 安装到 $HOME/bear 目录

# 添加到 PATH(临时生效)
export PATH=$HOME/bear/bin:$PATH

Clangd配置
https://tomwithkernel.github.io/config/clangd/
作者
Tom
发布于
2025年3月12日
更新于
2025年3月17日
许可协议