关于 Link.exe 的报错,会让新接触Rust的人有点气馁。就像雄心壮志的英勇刚踏出门,就摔了一个狗啃泥... 关键字: Rust, link.exe, not found [[toc]]
在线工具
如果你还没想好是否要学习Rust也不想折腾去部署开发环境,你可以使用官方在线工具进行学习和调试 https://play.rust-lang.org/
环境搭建(Windows)
Rust 经过这几年的发展沉淀,网络上已经有不少的教程可以参考了。 如果您是 Windows 的 Linux 子系统(WSL)用户,要安装 Rust,请在终端中运行以下命令,然后遵循屏幕上的指示。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
如果是纯Windows开发,可以先安装
- Rust 编译工具:https://www.rust-lang.org/zh-CN/tools/install
- Visual Studio Code:https://code.visualstudio.com/Download
创建项目
cargo new hello-rust
第一个报错
cd hello-rust
cargo run
::: danger
error: linker link.exe
not found
:::
官方指导教程
您似乎正在运行 Windows。要使用 Rust,请下载安装器,然后运行该程序并遵循屏幕上的指示。当看到相应提示时,您可能需要安装 Microsoft C++ 生成工具
Visual Studio 的安装工具令人迷茫,好在 Rust 提供了第二种方案!
MinGW-w64
部署 MinGW 不推荐使用官网,因为Github的下周速度相比会好很多! ::: tip github 的版本比较多,Windows 10 以上系统 ucrt :::
只要在系统变量中添加bin的目录就算完成了。
{{{width="auto" height="auto"}}}
现在就可以使用 rustup-init.exe 选择 2.Customize installation 并将 msvc 改成 gnu 进行安装了!
{{{width="auto" height="auto"}}}
其他配置全部默认,再回到这个选择页面选1开始安装
成功运行
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.10s
Running `target\debug\hello-rust.exe`
Hello, world!
Windows 下 Cargo 的缓存目录
::: tip 如果你的用户名名带中文,可能会在一些项目编译上报 Not Found 错误 所以为了避免发生问题,推荐统一将 Cargo 的缓存目录改成英文的
只需要在 用户变量
或 系统变量
中添加 CARGO_HOME = 路径
就可以了
:::
疑惑延展
link.exe 是什么?
link.exe 是微软的编译器(如 Visual C++ 编译器)中的链接器程序,通常是作为微软 Visual Studio 安装的一部分提供的。 链接器的主要作用是将编译器生成的目标文件(.obj 文件)以及所需的库文件组合在一起,生成可执行文件(如 .exe 文件)或动态链接库(如 .dll 文件)。 它处理诸如解决符号引用、确定内存布局、合并段等任务,以创建一个完整的、可运行的程序或库。
为什么 Rust 要用到 link.exe?
Rust 本身并不直接使用 link.exe 。 然而,如果您在 Windows 上使用某些与 Rust 相关的工具链或构建系统,并且它们依赖于底层的 C/C++ 工具链(可能是为了与 C/C++ 代码进行交互,或者使用了某些基于 C/C++ 构建的依赖项),那么在构建过程中可能会间接调用 link.exe 来完成链接操作。 但这并不是 Rust 语言本身的直接要求,而是特定的构建配置或依赖所导致的。