vscode+wsl2+bear+clangd配置教程

发布于:2025-03-21 ⋅ 阅读:(17) ⋅ 点赞:(0)

要在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提供代码分析、自动补全、跳转定义等功能。