关于在Vscode安装clangd的教程(分别在linux和windows)[很详细,很细节,

[复制链接]
发表于 2026-10-3 16:40:04 来自手机 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

一、背景:为什么要换掉 VS Code 自带的 C/C++ 补全

VS Code 里有 C/C++ 编译器插件,但它自带的补全能力一直不算好用;clang 也是一套编译器,其对应的 clangd 补全体验明显更友好。

所以常见搭配是:编译和运行交给 C/C++ 插件,补全交给 clangd。 两条腿走路,各用各的长处。

本文覆盖两件事:

  • VS Code 远程连 Linux 时,本地端和 Linux 端分别怎么配 clangd;
  • Windows 下用 clangd(解决它报「缺少 language engine」的问题)。

二、Linux 端:先装 clang,再装 clangd

安装分两部分:Linux 远程端和本地 VS Code 端,先做前者。

1. 为什么先装 clang

clangd 依赖 clang,所以顺序是先 clang 后 clangd。 Ubuntu 下就一条命令,但务必先跑 sudo apt update 让你的本地包存储库信息是最新的——很多人直接执行安装命令报错,就是因为索引没更新。

sudo apt update          # 确保你的本地包存储库信息是最新的
sudo apt install clang   # 安装 clang

2. 装 clangd 并验证

sudo apt install clangd
clang --version
clangd --version

只要能弹出版本相关信息,基本就是装上了。 也可以用 which clang / which clangd 看命令路径来确认。

3. Windows 上远程连 Linux:插件装在哪一端

VS Code 远程开发(SSH)模式下,插件分「本地安装的」和「远程端安装的」两类:

  • 已经连上远程 Linux:直接在插件市场搜 clangd 安装,它会装到远程端,和远程 Linux 这套工具链配套;
  • 没连远程:插件市场顶部会出现「在 SSH: 目标主机中安装」的按钮,点一下再装,才会落到远程端。

装完右下角会弹出提示,这是 C/C++ IntelliSense Engine 和 clangd 两个引擎共存导致的冲突——需要把默认的那个引擎禁掉(它本身是可替换的,不禁用就会互相抢)。

4. 关掉 IntelliSense Engine

左下角打开设置(或按 Ctrl+Shift+P 打开命令面板),输入 IntelliSenseEngine,把值从默认的 default 改成 disabled。以后想改回来,还是这条路。

验证 clangd 有没有在工作:在「输出」面板把输出渠道切到 clangd,就能看到它的日志日志;正常工作的标志是代码里不再满屏红线(个别语法误报仍可能有,但整体会干净很多)。

5. 一个大坑:安装顺序反过来,插件会「消失」

如果安装顺序是 2 → 1(先装本地、再补远程),没问题;但如果先完成了 1(远程端装好),再打开本地文件想用 clangd,会发现本地压根没装这个插件。

原因是 clangd 是分两半的:一半在本地 VS Code,一半在远程端,而远程连接状态下你是没法装「本地那一份」的。

解决办法:先关掉远程连接,在本地打开一个文件,再在插件处装一次(供本地用)。 这也正是下面 Windows 章节要解决的问题——很多人的困惑,「我明明装过啊,怎么没了」,基本都是这个顺序问题。

三、Windows 端:解决「缺少 language engine」

1. 报错长什么样

Windows 上装完 clangd 插件,右下角会提示缺少 language engine(语言引擎)。

2. 为什么缺

clangd 是基于 Clang 编译器的:Clang 是开源的 C/C++ 编译器前端,由 LLVM(Low Level Virtual Machine)项目提供支持。 换句话说,它缺的是 LLVM。

3. 方法一:让插件自己下载

按 Ctrl+Shift+P,输入:

>clangdownload language server

正常情况下这一步就能自动下载;但如果网络环境有问题、提示下载失败,就得走方法二手动装。

4. 方法二:手动安装 LLVM

打开 LLVM 项目的 GitHub Release 页面,选择 win32 版本的安装包下载并安装。

安装过程中的关键点:配置环境变量那一步,选「所有用户」或「当前用户」都可以,选当前用户重新打开 VS Code 即可,选所有用户则需要重启电脑。

装完不出意外的话,右下角那个缺少 language engine 的报错就没了,clangd 可以正常用了。

四、两平台的排查速查

  • 还有红线在飘:看「输出 → clangd」日志日志;同时确认 IntelliSense Engine 已 disabled;
  • 本地插件莫名消失:关掉远程连接,本地打开一个文件重装一次(顺序坑);
  • Windows 报缺 language engine:先试命令面板的 Download language server,失败就手动装 LLVM 并重启;
  • 远程端命令找不到:which clangd 在远程 shell 里跑一次,确认 PATH 里有;
  • 只补全CPP标准库、不含项目头:通常不是插件问题,而是缺少 compile_commands.json(用 cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON 生成),clangd 靠它知道编译参数。

五、一句话总结

远程 Linux 端:先 apt update 再 apt install clang,紧接 clangd,然后本地装插件、在设置里把 IntelliSenseEngine 改成 disabled。

本地 Windows 端:装完如果报缺 language engine,装 LLVM(win32 安装包)即可。

两个平台共通的纪律其实就两条:先装前端编译器(clang)再装语言服务器(clangd),先确定插件装在哪一端再谈配置。 把这两条记住,剩下的报错基本都能靠「输出面板切到 clangd」这一招自己看出来。

(本文由 qidao123.com企服评测-应用市场 编辑提示整理:内容围绕 VS Code + clangd 的 C/C++ 语言服务配置,适用于 Linux 远程开发机与 Windows 本地编辑环境搭建。)

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表