一、报错总结
link.exe 链接失败
error: linking with link.exe failed: exit code: 1
link: extra operand ...
Try 'link --help' for more information.
根本原因:有两种可能
| 原因 | 说明 |
|---|---|
| ① MSVC 工具链不完整 | 没有安装 Visual Studio C++ 构建工具 |
| ② Git 劫持了 link.exe | D:\Git\usr\bin\link.exe 是 GNU link(ln 工具),不是微软的链接器 |
解决方案:
- 安装 Visual Studio C++ Build Tools(见下文)
- 重启电脑
- 执行
cargo clean && cargo build
💡 说明:
where link可能仍然显示 Git 的路径,这不影响项目运行。Rust 工具链会自动定位 MSVC 的 link.exe,不依赖系统 PATH 环境变量。
二、Visual Studio 安装细节
下载地址
👉 visualstudio.microsoft.com/visual-cpp-…
安装选项
⚠️ 重要:选择「手动选择工作负载和组件」,不要复制原有配置!
✅ 必须安装的组件
| 组件 | 作用 |
|---|---|
| 使用 C++ 的桌面开发(工作负载) | 核心入口,必须勾选 |
| MSVC v143 - x64/x86 build tools | Rust 实际调用的编译/链接器 |
| Windows 10/11 SDK | 系统库头文件 |
| C++ CMake tools for Windows | 很多 Rust crate 依赖 CMake |
| vcpkg 管理器 | 部分 crate 间接依赖 |
💡 提示:
C++ CMake tools for Windows需要在搜索框中输入cmake才能找到。
❌ 可以不装的组件(节省空间)
| 组件 | 原因 |
|---|---|
| MSVC AddressSanitizer | C++ 内存检测,Rust 不需要 |
| 测试工具功能 - 生成工具 | VS 单元测试用 |
| C++ ATL / MFC | 传统 Windows GUI 开发 |
| C++/CLI 支持 | .NET + C++ 混合开发 |
| MSVC v142 / v141 / v140 | 老版本兼容,不需要 |
| WinUI / .NET / Web / Azure 工作负载 | 与 Rust/Tauri 无关 |
安装后操作
-
重启电脑(不只是终端)
-
重新编译:
cargo clean cargo build
💡 注意:无需手动配置环境变量。Rust 工具链会自动检测并使用 MSVC 的 link.exe,即使
where link显示的是 Git 路径也没关系。
三、其他常见问题
Q: VS 2022 和 VS 2026 需要卸载一个吗?
不需要,可以共存。Rust 只认 MSVC 工具链路径,不关心 VS 版本。
Q: 打包的 Windows 应用能在 Win10 上运行吗?
可以。Windows SDK 是向下兼容的:
- ✅ 支持 Windows 11
- ✅ 支持 Windows 10
- ❌ 不支持 Windows 7(Tauri 本身也不支持)
四、核心理解
在 Windows 上:
| 组件 | 作用 |
|---|---|
| Rust | 编程语言 |
| Cargo | 构建工具 + 包管理 |
| MSVC | 真正的 C/C++/系统库 编译 + 链接 |
没有 MSVC,Rust 在 Windows 上是残废状态。