Rust 在 Windows 上无法编译?解决 linker link.exe 问题

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

引言:你的第一个 Rust "Hello, world!" 无法运行



你刚刚安装了 Rust,打开终端,用这门优雅且安全的语言写下了第一行代码,输入了 cargo run —— 然后立刻看到了一条令人困惑的红色错误信息:



error: linker `link.exe` not found  |  = note: The system cannot find the file specified. (os error 2)


熟悉吗?别慌!你遇到了从 Windows 转向 Rust 的新手最常见的问题之一。这个错误既不是编译器的 bug,也不是什么诅咒。它只是你的新朋友 Rust 和操作系统之间的一点小误会。成千上万的开发者在 Stack Overflow 上都经历过这个问题,今天我们就来一劳永逸地解决它。欢迎来到 Windows 上的系统编程世界 —— 在这里,你需要的不仅仅是安装一门语言。



为什么 Rust 找不到 link.exe?深入问题根源



要理解为什么会出现 linker link.exe not found 错误,我们需要深入编译过程的内部。当你编写 rustc main.rs 或 cargo build 时,Rust 会将你的代码编译成目标文件。但这还没完。为了生成最终的可执行文件 (.exe),这些目标文件需要被链接在一起。这项工作由一种特殊的程序完成 —— 链接器。



在 Windows 上,默认的链接器是来自 Microsoft Visual C++ (MSVC) 工具集的 link.exe。Rust 作为一种与系统编译器“友好”的语言,默认会选择 MSVC 工具链(除非你在安装时指定了其他选项)。问题在于,这个链接器并不是 Windows 的一部分。它随 Visual Studio 或独立的 Build Tools for Visual Studio 包一起提供。



关键点: Rust 找不到 link.exe,因为它要么根本没有安装在你的电脑上,要么没有添加到系统环境变量 PATH 中。



快速检查清单:可能出了什么问题?

  • 你通过 rustup-init.exe 安装了 Rust,并且一路按了 "Enter"。 这很正常,但安装程序不会安装 Visual Studio。
  • 你安装了 Visual Studio Code 或其他 IDE,但没有安装 Visual Studio。 这两者不是一回事。
  • 你在安装时选择了 GNU 工具链。 如果是这样,你需要的不是 MSVC,而是 GCC(例如通过 MinGW)。但今天我们讨论的是标准的 MSVC。


解决方案 #1:安装 Visual Studio Build Tools(推荐方法)



这是 Windows 上最正确、最“原生”的方法。微软提供了一个免费包,其中只包含编译器和链接器 —— 没有庞大的 IDE。



  1. 下载安装程序: 前往微软官方网站,下载 Build Tools for Visual Studio 2022。搜索 "Visual Studio 2022 Build Tools"。
  2. 运行安装: 运行下载的 vs_BuildTools.exe。
  3. 选择组件: 在安装程序中,选择 "工作负载" (Workloads) 选项卡。勾选 "使用 C++ 的桌面开发" (Desktop development with C++) 选项。
  4. 安装: 点击右下角的 "安装" 按钮。这个过程可能需要 10-20 分钟,因为需要下载大约 2-3 GB 的数据。
  5. 重启(可选): 安装完成后,重启电脑以使环境变量生效。


之后,打开一个新的终端,再次尝试编译你的项目:



cargo new hello_world                

博客

书籍推荐