无法在 Windows 上编译 Rust hello world:找不到链接器 link.exe
Unable to compile Rust hello world on Windows: linker link.exe not found
我已经从 Rust installation page 在 windows 上安装了 Rust。安装后,我尝试了 运行 "hello world" 程序,但出现以下错误。
>cargo run
错误
Compiling helloworld v0.1.0 (C:\Users\DELL\helloworld)
error: linker `link.exe` not found
note: The system cannot find the file specified. (os error 2)
note: the msvc targets depend on the msvc linker but `link.exe` was not found
note: please ensure that VS 2013, VS 2015 or VS 2017 was installed with the Visual C++ option
error: aborting due to previous error
error: Could not compile `helloworld`.
To learn more, run the command again with --verbose.
代码:
fn main() {
println!("Hello, world!");
}
我下载并安装了 Build Tools for Visual Studio 2019。在安装过程中,我选择了 C++ 工具。它下载了将近 5GB 的数据。安装后我重新启动机器并编译代码工作正常:
> cargo run
Compiling helloworld v0.1.0 (C:\Users\DELL\helloworld)
Finished dev [unoptimized + debuginfo] target(s) in 12.05s
Running `target\debug\helloworld.exe`
Hello, world!
我遇到了同样的问题,并且发现它甚至在安装构建工具后仍然存在。我几乎是偶然意识到我在 "Developer Command Prompt for Visual Studio " 中 运行 所有的货物命令。 运行 在一个简单的 cmd shell 运行 中执行相同的命令没有任何问题。
对我有用的方法:运行 直接使用命令提示符而不使用 Visual Studio 创建的快捷方式。
可能的原因:Visual Studio 命令提示符运行 bat 文件,例如VsDevCmd.bat 在启动 shell(加载 VS 相关环境变量等)之前,可能还有该文件中的命令之一搞砸了 cargo 用于访问链接器的路径。
如果有人真的想知道,可以进一步挖掘以找到导致问题的确切行。
尝试在 Visual Studio 之外使用 Powershell。
然后 cargo 运行 在 src 的父文件夹中。
你也可以试试:rustc
祝你好运。
案例一:使用C++win编译器,修复需要重装VS编译工具C++
从 Microsoft 网站下载 Visual Studio 2019 构建工具:
https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16
下载后,在安装构建工具时,请确保安装所需的组件:
- C++ 构建工具
这将下载所需的文件。成功安装所有内容后,重新启动并重新运行你的 rust 程序,它将成功编译。
案例2:这个错误可能来自于你使用GCC编译,修复它(假设你已经有MinGW):
cmd 中的磁带:
rustup uninstall toolchain stable-x86_64-pc-windows-msvc
rustup toolchain install stable-x86_64-pc-windows-gnu
(or download rustup-init for the platform of your choice at https://forge.rust-lang.org/infra/other-installation-methods.html)
rustup default stable-x86_64-pc-windows-gnu
案例3:你不想下载Visual studio带构建工具的,直接用g++ gcc开发包安装MinGw,然后运行案例2
我遇到了类似的问题“error: linking with link.exe failed: exit code: 1
”
为了解决它,我做到了
rustup toolchain install stable-x86_64-pc-windows-gnu
然后
rustup default stable-x86_64-pc-windows-gnu
和
cargo build
Compiling hello v0.1.0 (C:\Users\leke\dev\rust\hello)
Finished dev [unoptimized + debuginfo] target(s) in 1.66s
错误消息非常不清楚,因为 运行 rust 代码不需要安装 Vistual Studio。 “Visual C++ 选项”到底是什么意思?
“VS 2013、VS 2015 或 VS 2017”也是错误的 - 无需安装这些特定版本的完整 Visual Studio。
要执行 'cargo run',您需要从 Visual Studio 的构建工具安装 C++ 构建工具。 2019版就好了。下载 link:
https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16#
重要的是 select 不仅是安装过程中的默认 'included' C++ 工具,还有三个 'optional' C++ building tools:MSVC(...),Windows 10 SDK , Windows.
的 C++ CMake 工具
我的系统变量中有一些来自旧 Visual Studio 安装的变量。删除那些解决了问题。
VCHOME C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC
VCINSTALLDIR C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC
VS140COMNTOOLS C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common Tool...
vsinstalldir C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC
首先,下载Microsoft C++ Build Tools并安装。
然后,安装 rustup-init.exe。
安装rust成功后不要删除第一个
将 C:\Program Files (x86)\Microsoft Visual Studio19\BuildTools\VC\Tools\MSVC.29.30133\bin\Hostx64\x64
添加到 PATH 变量完成了技巧
如果上述解决方案仍然不适合您(这是 2021 年),Rust 使用 msvc 和 gnu 编译器,因此您可以始终切换到 gnu 编译器:
$ rustup default stable-x86_64-pc-windows-gnu
好的!
这正是我所做的。转到 https://visualstudio.microsoft.com/visual-cpp-build-tools/,它将下载 Visual Studio 安装程序。
运行 以管理员身份,然后确保下载屏幕截图中下面列出的所有三个东西,版本无关紧要,只需尝试获取最新版本即可。
点击安装。重新启动计算机。不客气。
只需安装 Microsoft c++ Build Tools
即可。
这里是 link
我已经从 Rust installation page 在 windows 上安装了 Rust。安装后,我尝试了 运行 "hello world" 程序,但出现以下错误。
>cargo run
错误
Compiling helloworld v0.1.0 (C:\Users\DELL\helloworld)
error: linker `link.exe` not found
note: The system cannot find the file specified. (os error 2)
note: the msvc targets depend on the msvc linker but `link.exe` was not found
note: please ensure that VS 2013, VS 2015 or VS 2017 was installed with the Visual C++ option
error: aborting due to previous error
error: Could not compile `helloworld`.
To learn more, run the command again with --verbose.
代码:
fn main() {
println!("Hello, world!");
}
我下载并安装了 Build Tools for Visual Studio 2019。在安装过程中,我选择了 C++ 工具。它下载了将近 5GB 的数据。安装后我重新启动机器并编译代码工作正常:
> cargo run
Compiling helloworld v0.1.0 (C:\Users\DELL\helloworld)
Finished dev [unoptimized + debuginfo] target(s) in 12.05s
Running `target\debug\helloworld.exe`
Hello, world!
我遇到了同样的问题,并且发现它甚至在安装构建工具后仍然存在。我几乎是偶然意识到我在 "Developer Command Prompt for Visual Studio " 中 运行 所有的货物命令。 运行 在一个简单的 cmd shell 运行 中执行相同的命令没有任何问题。
对我有用的方法:运行 直接使用命令提示符而不使用 Visual Studio 创建的快捷方式。
可能的原因:Visual Studio 命令提示符运行 bat 文件,例如VsDevCmd.bat 在启动 shell(加载 VS 相关环境变量等)之前,可能还有该文件中的命令之一搞砸了 cargo 用于访问链接器的路径。
如果有人真的想知道,可以进一步挖掘以找到导致问题的确切行。
尝试在 Visual Studio 之外使用 Powershell。
然后 cargo 运行 在 src 的父文件夹中。
你也可以试试:rustc
祝你好运。
案例一:使用C++win编译器,修复需要重装VS编译工具C++ 从 Microsoft 网站下载 Visual Studio 2019 构建工具: https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16
下载后,在安装构建工具时,请确保安装所需的组件:
- C++ 构建工具
这将下载所需的文件。成功安装所有内容后,重新启动并重新运行你的 rust 程序,它将成功编译。
案例2:这个错误可能来自于你使用GCC编译,修复它(假设你已经有MinGW):
cmd 中的磁带:
rustup uninstall toolchain stable-x86_64-pc-windows-msvc
rustup toolchain install stable-x86_64-pc-windows-gnu
(or download rustup-init for the platform of your choice at https://forge.rust-lang.org/infra/other-installation-methods.html)rustup default stable-x86_64-pc-windows-gnu
案例3:你不想下载Visual studio带构建工具的,直接用g++ gcc开发包安装MinGw,然后运行案例2
我遇到了类似的问题“error: linking with link.exe failed: exit code: 1
”
为了解决它,我做到了
rustup toolchain install stable-x86_64-pc-windows-gnu
然后
rustup default stable-x86_64-pc-windows-gnu
和
cargo build
Compiling hello v0.1.0 (C:\Users\leke\dev\rust\hello)
Finished dev [unoptimized + debuginfo] target(s) in 1.66s
错误消息非常不清楚,因为 运行 rust 代码不需要安装 Vistual Studio。 “Visual C++ 选项”到底是什么意思? “VS 2013、VS 2015 或 VS 2017”也是错误的 - 无需安装这些特定版本的完整 Visual Studio。
要执行 'cargo run',您需要从 Visual Studio 的构建工具安装 C++ 构建工具。 2019版就好了。下载 link: https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16#
重要的是 select 不仅是安装过程中的默认 'included' C++ 工具,还有三个 'optional' C++ building tools:MSVC(...),Windows 10 SDK , Windows.
的 C++ CMake 工具我的系统变量中有一些来自旧 Visual Studio 安装的变量。删除那些解决了问题。
VCHOME C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC
VCINSTALLDIR C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC
VS140COMNTOOLS C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common Tool...
vsinstalldir C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC
首先,下载Microsoft C++ Build Tools并安装。 然后,安装 rustup-init.exe。 安装rust成功后不要删除第一个
将 C:\Program Files (x86)\Microsoft Visual Studio19\BuildTools\VC\Tools\MSVC.29.30133\bin\Hostx64\x64
添加到 PATH 变量完成了技巧
如果上述解决方案仍然不适合您(这是 2021 年),Rust 使用 msvc 和 gnu 编译器,因此您可以始终切换到 gnu 编译器:
$ rustup default stable-x86_64-pc-windows-gnu
好的!
这正是我所做的。转到 https://visualstudio.microsoft.com/visual-cpp-build-tools/,它将下载 Visual Studio 安装程序。
运行 以管理员身份,然后确保下载屏幕截图中下面列出的所有三个东西,版本无关紧要,只需尝试获取最新版本即可。
点击安装。重新启动计算机。不客气。