必须手动下载匹配版本的cpptools-srv二进制并放入扩展目录,再用命令行离线安装vsix包;修改settings.json中cpp.serverPath无效,需确保文件权限和架构一致,且清除残留缓存。

VSCode C/C++扩展卡在“正在安装依赖项”怎么办
直接结论:不是网络问题,是 VSCode 试图自动下载 cpptools-srv(语言服务器)和 clangd(可选)等二进制组件时失败,而它默认不提供离线安装入口。必须手动下载对应平台的 vsix 包 + 依赖二进制,并通过命令行强制安装。
怎么找到匹配的 cpptools-srv 离线包
VSCode C/C++ 扩展(ms-vscode.cpptools)依赖的 cpptools-srv 不随扩展一起打包,每次更新后会单独从微软 CDN 下载。它的版本号和扩展严格绑定,不能随便找一个用。
- 打开已安装的 C/C++ 扩展详情页 → 点击右上角「…」→ 「Copy Extension ID」,得到类似
ms-vscode.cpptools-1.18.5 - 去 GitHub Release 页面:
https://github.com/microsoft/vscode-cpptools/releases/tag/1.18.5(把1.18.5换成你实际的版本号) - 下载对应系统的
cpptools-server-*.zip(如cpptools-server-linux-arm64.zip),解压后得到cpptools-srv可执行文件 - 注意:Windows 用户要确认是
win32-x64还是win32-arm64,别下错架构
怎么让本地 cpptools-srv 被 VSCode 正确加载
VSCode 不会自动认你放好的 cpptools-srv,必须告诉它路径。靠修改 settings.json 中的 cpp.executablesPath 或 cpp.serverPath 都无效 —— 这俩是旧版或干扰项。真正起作用的是:
- 关闭所有 VSCode 实例
- 找到你的 C/C++ 扩展安装目录(Windows 示例):
%USERPROFILE%\.vscode\extensions\ms-vscode.cpptools-1.18.5\ - 把解压出的
cpptools-srv(Linux/macOS)或cpptools-srv.exe(Windows)直接丢进该目录根路径 - 确保文件有执行权限(Linux/macOS 执行
chmod +x cpptools-srv) - 重启 VSCode,状态栏左下角出现「C/C++ IntelliSense 已启用」即成功
为什么 vsix 重装也卡住?离线安装的正确姿势
直接双击 .vsix 文件或拖进 VSCode 安装,仍会触发联网下载 cpptools-srv。必须跳过 UI,用命令行绕过自动流程:
立即学习“C++免费学习笔记(深入)”;
- 先卸载已卡住的扩展:
code --uninstall-extension ms-vscode.cpptools - 再离线安装扩展本体:
code --install-extension ms-vscode.cpptools-1.18.5.vsix(路径写全) - 安装完立刻关掉 VSCode,按上一节方式塞入
cpptools-srv,再启动 - 如果还报错
Failed to download cpptools-srv,大概率是扩展目录里残留了失败缓存,删掉整个ms-vscode.cpptools-*文件夹再试
最易被忽略的一点:VSCode 的「工作区设置」或「远程 SSH 设置」可能覆盖了全局路径逻辑,如果只在某个文件夹里失效,先检查 .vscode/settings.json 里有没有误写的 cpp.default.intelliSenseEngine 或 files.associations 干扰初始化。


















