在 Windows 上试图安装 Rust,但同时又不想去安装那讨厌笨重的 MSVC
前置准备
首先我们先去下载windows 上的安装脚本
在安装前我们需要增加一些环境变量,手动在环境变量中添加,下面是要添加的内容
# 修改镜像源
$ENV:RUSTUP_DIST_SERVER='https://mirrors.ustc.edu.cn/rust-static'
$ENV:RUSTUP_UPDATE_ROOT='https://mirrors.ustc.edu.cn/rust-static/rustup'
# 修改安装位置
$ENV:RUSTUP_HOME='D:\Tools\rust\.rustup'
$ENV:CARGO_HOME='D:\Tools\rust\.cargo'
添加过程和结果如下


安装 RUST
打开终端,运行刚才下载的rustup-init.exe
,第一部这里选择3
,不安装 MSVC

回车后可以在这里看到安装目录是否正确

然后就一路回车即可,看到Rust is installed now. Great!
证明安装结束,然后开一个新的终端验证一下

为了以后下载能顺利下载依赖,我们要在CARGO_HOME
路径下增加一个config.toml
文件用于修改镜像源,文件内容如下
[source.crates-io]
registry = "https://github.com/rust-lang/crates.io-index"
# 替换成你偏好的镜像源
replace-with = 'ustc'
# 清华大学
[source.tuna]
registry = "https://mirrors.tuna.tsinghua.edu.cn/git/crates.io-index.git"
# 中国科学技术大学
[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"
# 上海交通大学
[source.sjtu]
registry = "https://mirrors.sjtug.sjtu.edu.cn/git/crates.io-index"
# rustcc社区
[source.rustcc]
registry = "git://crates.rustcc.cn/crates.io-index"
安装 GNU
在完成上述安装后,我们使用cargo new hello_world
新建一个项目,然后在该项目目录下执行cargo run
发现会报下面错误。这是因为我们没有安装 MSVC,这时我们需要安装 window-gnu 来代替它。

输入下面两行命令安装并设置 windows-gnu
rustup toolchain install stable-x86_64-pc-windows-gnu
rustup default stable-x86_64-pc-windows-gnu
此时再次使用cargo run
运行项目大概率还会出现下面报错,别急,还有步骤没有完成。

这里是由于我们之前下载的 mingw 里面一些库的问题(讨厌的 C),根据 issues #91146 中的这条回复 ,我们从 winlibs 中下载并替换掉我们原本的 ming64 就可以解决该报错。

然后命令行运行cargo run
就可以看到我们期待的Hello, world!
啦!

在解决问题的过程中也看到网上很多人吐槽 GNU 的坑很多,MSVC 才是官方真品,所以建议还是下载 MSVC 吧(但我对这玩意儿有心理阴影了,这东西把我电脑搞崩过两次,我还是慢慢探索 GNU 的坑吧)。
更好地写 rust
如 rust 圣经 中的那样,推荐使用 vscode 进行 rust 编程,同时推荐 rust-analyzer 和 Rust Syntax 这两款插件辅助进行编程。