vscode+wsl2+bear+clangd配置教程

server/2025/3/31 11:09:38/

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


http://www.ppmy.cn/server/176716.html

相关文章

深度测评|杰和科技云终端VT813详细介绍+实测数据!

传统企业办公标配为一人一台电脑,每个人的操作系统、应用程序以及内部数据都绑定于一台设备上,若其中一个环节出现问题,电脑桌面将无法正常使用; 在政府服务窗口、行政审批中心等场景中,硬件故障、系统崩溃或数据丢失等…

解决 WSL1 Ubuntu 24.04 更新失败

问题 wsl1 的 Ubuntu 24.04 执行: sudo apt update sudo apt upgrade -y更新过程安装失败, 提示错误: Setting up systemd (xxxx-xxx)... Failed to take /etc/passwd lock: Invalid argument dpkg: error processing package systemd (--configure):installed systemd pack…

【后端开发面试题】每日 3 题(十六)

✍个人博客:Pandaconda-CSDN博客 📣专栏地址:https://blog.csdn.net/newin2020/category_12903849.html 📚专栏简介:在这个专栏中,我将会分享后端开发面试中常见的面试题给大家,每天的题目都是独…

大模型agent的构建

重点:通过langchain 调用 定义的工具或api 1. 明确Agent的核心目标 应用场景:确定Agent的用途(如客服、个人助手、数据分析、自动化流程等)。 输入输出:定义输入形式(文本、语音、图像等)和 输…

OAK相机入门(二):深度噪声滤除

文章目录 1. 产生噪声原因2. 解决方法2.1 设置confidence threshold2.2 提高图片质量2.3 对图片进行滤波 3. 总结 1. 产生噪声原因 OAK相机通过匹配同一点在左右相机的视差,来计算深度,如果物体表面问题区别性较低,就会造成误匹配&#xff0…

golang 生成单元测试报告

在 Go 语言中,你可以使用 go test 生成单元测试报告。以下是几种方法: 1. 生成基本测试报告(文本格式) go test -v ./... > test_report.txt-v:显示详细的测试信息./...:递归测试所有子目录> test_r…

hive 表结构

Hive 是构建在 Hadoop 上的数据仓库工具,其表结构设计直接影响到数据存储和查询性能。以下是 Hive 表的核心结构要素及常见操作: 1. Hive 表的核心结构 (1) 表的类型 类型描述内部表(Managed Table)数据由 Hive 管理&#xff0…

《Python深度学习》第四讲:计算机视觉中的深度学习

计算机视觉是深度学习中最酷的应用之一,它让计算机能够像人类一样“看”和理解图像。想象一下,计算机可以自动识别照片中的物体、人脸,甚至可以读懂交通标志。这一切听起来是不是很神奇?其实,这一切都离不开深度学习中的卷积神经网络(CNN)。今天,我们就来深入了解一下C…