Windows下搭建 Rust 开发环境

1,430 阅读3分钟

Rust 支持很多的集成开发环境(IDE)或开发专用的文本编辑器。查看官网公布支持的开发工具。

Rust 的编译工具依赖 C 语言的编译工具,可以使用 Microsoft C++ 生成工具 或者 MinGW + GCC 编译环境。

本文采用的是 Microsoft C++ 生成工具 + Visual Studio Code 的方式。

安装 Microsoft C++ 生成工具

Microsoft C++ 生成工具 主要是为 Rust 提供一个 C 编译环境,它是Visual Studio的一个可以单独安装的组件。如果系统安装了 Visual Studio 2013 及以上版本,并且在安装期间勾选了 Microsoft C++ 生成工具,那么就不需要再额外安装 Microsoft C++ 生成工具 了。

下载 Microsoft C++ 生成工具

双击下载的安装包vs_buildtools__xxx.xxx,在弹出的窗口中勾选【C++ 生成工具】和英语语言包,然后点击【安装】。

安装rustup

rustup 是 Rust 的安装和管理工具,默认情况下,它会同时安装这些工具:rustc,rust-std,cargo,rust-docs,rustfmt,clippy。其中,rustc 是 Rust 的编译工具,cargo 是 Rust 的包管理工具。

下载 RUSTUP-INIT.EXE

双击下载的 RUSTUP-INIT.EXE,若操作系统没有安装 C 语言编译环境,在弹出的 CMD 窗口中会进行提示(见下图红色字)。

双击下载的 RUSTUP-INIT.EXE,若已经安装了 Microsoft C++ 生成工具,则会展示以下内容。直接敲回车即可,因为它默认选的 C 语言编译环境就是 MSVC。 若要使用 MinGW + GCC 编译环境,则需要输入 2,进行自定义安装(需要提前安装 MinGW)。

安装成功:敲回车,安装结束。

确认:打开新的 cmd 窗口,输入rustc --versioncargo --version命令。

安装 VSCode 及相关插件

首先要安装 Visual Studio Code,然后在 VSCode 中安装下面的插件:

配置国内 Crate 源

在构建 Rust 项目时,Cargo 工具会从 "registry" 获取项目依赖包(Crate),默认的 "registry" 是 crates.io。但是在国内访问这个网站时往往速度比较慢,因此我们可以将其替换为国内的 Crate 源。

配置方法:在 $HOME/.cargo/config 文件中添加如下内容

[source.crates-io]
replace-with = 'ustc'

[source.ustc]
registry = "git://mirrors.ustc.edu.cn/crates.io-index"

第一个 Rust 程序

新建一个rust_demo文件夹,然后用 VSCode 打开。在 VSCode 界面新建一个终端,输入下面的命令:

# 创建一个名为 helloworld 的包(工程)
cargo new helloworld
# 进入 helloworld 文件夹
cd .\helloworld\
# 构建
cargo build
# 运行(先构建再运行)
cargo run

可能会遇到的问题

程序运行时阻塞

提示信息

PS F:\rust-demo> cd .\guessing_game\
PS F:\rust-demo\guessing_game> cargo run
    Blocking waiting for file lock on package cache

解决方法

如果确定没有多个程序占用,删除 ~/.cargo/.package-cache 文件。

修改镜像后下载 Crate 失败

报错信息

PS F:\rust-demo\guessing_game> cargo build
    Updating `git://mirrors.ustc.edu.cn/crates.io-index` index
warning: spurious network error (2 tries remaining): [35] SSL connect error (schannel: next InitializeSecurityContext failed: Unknown error (0x80092013) - ���ڵ������������ѻ������������޷���������)
warning: spurious network error (2 tries remaining): [35] SSL connect error (schannel: next InitializeSecurityContext failed: Unknown error (0x80092013) - ���ڵ������������ѻ������������޷���������)
warning: spurious network error (2 tries remaining): [35] SSL connect error (schannel: next InitializeSecurityContext failed: Unknown error (0x80092013) - ���ڵ������������ѻ������������޷���������)
warning: spurious network error (2 tries remaining): [35] SSL connect error (schannel: next InitializeSecurityContext failed: Unknown error (0x80092013) - ���ڵ������������ѻ������������޷���������)
warning: spurious network error (1 tries remaining): [35] SSL connect error (schannel: next InitializeSecurityContext failed: Unknown error (0x80092013) - ���ڵ������������ѻ������������޷���������)
warning: spurious network error (1 tries remaining): [35] SSL connect error (schannel: next InitializeSecurityContext failed: Unknown error (0x80092013) - ���ڵ������������ѻ������������޷���������)
warning: spurious network error (1 tries remaining): [35] SSL connect error (schannel: next InitializeSecurityContext failed

解决方法:

~/.cargo/config 文件中加入下面的内容

[http]
check-revoke = false

相关资料

The Rust Programming Language

Install Rust

Rust 环境搭建

Source Replacement - The Cargo Book

Rust Crates 源使用帮助