`cargo build` 失败并出现链接错误“link.exe 失败:退出代码:325595”

Hyd*_*n14 15 windows linker rust

我有一个 Rust 项目,可以在 Linux、macOS 和 Windows 10 上编译良好。

我今天使用Visual Studio 安装程序在 Windows 7 计算机上安装了以下各个组件:

  • VC++ 2015.3 v14.00 (v140) toolset for desktop
    • Windows Universal CRT SDK(依赖)
    • Windows 8.1 SDK(依赖)

之后,我使用官方网站rustup-init.exe上的新版本安装了 Rust新版本安装了 Rust 。

当我cargo build在 Windows 7 计算机上运行 Rust 项目时,它失败并显示以下消息:

error: linking with `C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\link.exe\` failed: exit code: 325595.
Run Code Online (Sandbox Code Playgroud)

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\link.exe在我的 Windows 10 计算机上不带任何参数单独运行all 会产生一些“帮助”信息,但在我的 Windows 7 计算机上,我会收到一个包含错误消息的窗口:

The application was unable to start correctly (0xc000007b).  Click Ok to close the application.
Run Code Online (Sandbox Code Playgroud)

我的 Google-Fu 没有找到任何有用的信息。我试过了:

  • sfc /scannow
  • 确保 System32 没有 32 位 DLL
  • 确保 SysWOW64 没有 64 位 DLL

mun*_*adi 36

更改默认链接器可以解决此问题。我的系统是 64 位系统,但链接器指向 32 位系统。

Rust书中也提到了这一点

 rustup default stable-x86_64-pc-windows-gnu
Run Code Online (Sandbox Code Playgroud)

阅读本文以获取有关为什么会发生这种情况的更多解释。

默认情况下,配置选择 32 位,因此运行上面给出的命令会将链接器切换为 64 位。

  • 最好在您的答案中添加一些解释。 (2认同)

Hyd*_*n14 2

下载最新的 64 位运行时Visual C++ Redistributable for Visual Studio 2017后,link.exe可以在我的 Windows 7 计算机上运行。我现在可以编译我的 Rust 项目了。

令我惊讶的是,Visual Studio 安装程序无法确保为 2015 工具集安装必要的运行时组件。


更新: Stargateur指出 Redistributable 可以直接从 Visual Studio 安装程序安装。它是Visual C++ 2017 Redistributable Update单独的组件。