vscode+wsl2+bear+clangd配置教程
要在Windows下使用VS Code连接WSL 2中的Linux源码并实现Clangd功能,可按以下步骤操作:
1. 确保WSL 2和Linux发行版已安装并运行
- wsl2安装教程参考网上资料,比较容易就能装好。
你可以通过Windows应用商店安装所需的Linux发行版,比如Ubuntu。安装完成后,在PowerShell中运行以下命令来确保WSL 2为默认版本:
wsl --set-default-version 2
2. 在WSL 2的Linux发行版中安装必要的工具
打开WSL 2中的Linux终端,安装Clangd和其他必要的开发工具:
- 安装clangd: (如果此方法安装失败,参考“linux下clangd在线安装失败时解决办法”)
sudo apt update
sudo apt install clangd
如果以上命令执行时提示:E: Unable to locate package clangd
解决办法:
添加 LLVM 密钥:wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
添加 LLVM 软件源(Ubuntu 18.04(代号为 bionic)):sudo add-apt-repository "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic main"
执行:sudo apt update
执行:sudo apt-get install clangd
- 安装bear
sudo apt install bear
3. 安装VS Code和WSL扩展
- 在Windows上安装VS Code,之后在VS Code的扩展市场里安装“WSL”扩展
4. 通过VS Code连接到WSL 2
- 打开VS Code。
- 点击左下角的蓝色图标,在弹出的菜单里选择“连接到WSL”。
- 这会开启一个新的VS Code窗口,该窗口已连接到WSL 2中的Linux环境。
5. 在WSL 2中打开项目文件夹
- 在新的VS Code窗口中,使用“File” -> “Open Folder”打开WSL 2中的项目文件夹。
6. 安装Clangd扩展
在连接到WSL 2的VS Code窗口里,打开扩展市场,安装“Clangd”扩展。
7. 配置Clangd
在VS Code中,打开设置(可以通过“File” -> “Preferences” -> “Settings”,或者使用快捷键Ctrl + ,
),点击vscode的右上角类似文件图标”打开设置json“.然后在弹出的settings.json大括号中添加如下内容
//---------------------------------clangd相关配置-------------------------------//
// 指定 clangd 可执行文件的路径(如果在系统路径中可直接使用 "clangd")
"clangd.path": "/usr/bin/clangd",
// 作为编译失败的备选标志,指定了包含文件夹的路径
"clangd.fallbackFlags": [
"-I${workspaceFolder}/include"
],
// 配置 clangd 启动参数
"clangd.arguments": [
"--background-index", // 启用后台索引
"--compile-commands-dir=${workspaceFolder}", // 设置编译命令文件夹
"--all-scopes-completion", // 允许在所有作用域中进行代码补全
"--completion-style=detailed", // 详细模式的代码补全
"--clang-tidy", // 启用 Clang-Tidy 静态代码分析
"--log=verbose", // 输出详细的日志信息
"--pretty" // 漂亮的输出格式
],
// 配置 CMake 构建目录
"cmake.buildDirectory": "${workspaceFolder}/build",
// 配置 CMake 构建环境变量,使其生成编译命令数据库
"cmake.buildEnvironment": {
"CMAKE_EXPORT_COMPILE_COMMANDS": "ON"
}
//---------------------------------------------------------------------------//
- 上面配置内容重点关注
- "clangd.path :linux中clangd的安装路径
- –compile-commands-dir :compile_commands.json文件的路径,此时位于${workspaceFolder}下
8. 生成编译数据库
Clangd需要一个编译数据库(通常是compile_commands.json
文件)来理解项目的编译设置。你可以使用bear生成这个文件,在项目根目录下执行以下命令:
bear make #此时生成的compile_commands.json文件就在项目根目录,vscode打开的文件夹目录
完成以上步骤后,重启VS Code就能连接到WSL 2中的 源码,并利用Clangd提供代码分析、自动补全、跳转定义等功能。