Skip to content

1.2 安装开发环境

Rust 编译器的下载和安装方法在官网上有文档说明,点击官网上的 Install 链接可以查看。Rust 官方已经提供了预编译好的编译器供我们下载,支持 Windows 平台、Linux 平台以及 Mac 平台。但是一般我们不单独下载 Rust 的编译器,而是使用一个叫 rustup 的工具安装 Rust 相关的一整套工具链,包括编译器、标准库、cargo 等。使用这个工具,我们还可以轻易地更新版本、切换渠道、多工具链管理等。

在官网上下载 rustup-init 程序,打开命令行工具,执行这个程序,按照提示选择合适的选项即可。不论在 Windows、Linux 还是 Mac 操作系统上,安装步骤都是差不多的。

也可以通过不同系统的软件管理工具去安装使用:

Mac

sh
brew install rustup-init

之后可以通过 rustup 去执行相关操作。

Windows

sh
scoop install rustup-msvc
rustc --version

在 Windows 平台下的选项要稍微麻烦一点。在 Windows 平台上,Rust 支持两种形式的 ABI(Application Binary Interface),一种是原生的 MSVC 版本,另一种是 GNU 版本。如果你需要跟 MSVC 生成的库打交道,就选择 MSVC 版本;如果你需要跟 MinGW 生成的库打交道,就选择 GNU 版本。一般情况下,我们选择 MSVC 版本。在这种情况下,Rust 编译器还需要依赖 MSVC 提供的链接器,因此还需要下载 VisualC++ 的工具链。到 Visual Studio 官网下载 VS2015 或者 VS2017 社区版,安装 C++ 开发工具即可。

Rustup 安装相关工具到~/.cargo目录下,同时会更新您的 PATH 环境变量以指向该目录。在该文件夹下可以看到一系列的可执行程序,比如 Rust 1.69 版本的时候,在 Mac 平台上安装的程序如下图所示。

~/.cargo
├── .package-cache
├── bin
│  ├── cargo
│  ├── cargo-clippy
│  ├── cargo-fmt
│  ├── cargo-miri
│  ├── clippy-driver
│  ├── rls
│  ├── rust-gdb
│  ├── rust-lldb
│  ├── rustc
│  ├── rustdoc
│  ├── rustfmt
│  └── rustup
├── env
└── registry
   ├── cache
   ├── index
   └── src

这些工具都是与 Rust 相关的命令行工具,它们各自有不同的用途:

工具描述链接 🔗
cargoRust 的包管理工具,它可以处理包依赖、编译并构建 Rust 项目https://doc.rust-lang.org/cargo/
cargo-clippy一个 Rust 静态分析工具,可以帮助开发者找出可能的错误和不良代码风格,以及提供修复建议https://github.com/rust-lang/rust-clippy
cargo-fmt一个格式化 Rust 代码的命令行工具,它可以自动重构代码的缩进、空格、换行和其他风格问题,使代码变得更易于阅读和维护https://github.com/rust-lang/rustfmt
cargo-miriMiri 是 Rust 官方提供的内存安全解释器,它可以在编译时检测内存越界、空指针引用等问题,帮助开发者识别和修复代码中的内存安全漏洞https://github.com/rust-lang/miri
clippy-driver一个 Rust 静态分析工具的驱动程序,它基于 LLVM 的 Clang 静态分析器,并提供了 Rust 特定的语言支持,以检查代码中的潜在错误和不良风格https://github.com/rust-lang/rust-clippy
rlsRLS 已被弃用,不再受支持。Rust 语言服务器,提供了自动补全、代码导航、语法检查等功能,帮助开发者更高效地编写 Rust 代码https://github.com/rust-lang/rls
rust-gdbGDB 的 Rust 修改版,用于在 Rust 代码中进行调试https://github.com/rust-lang/rust/tree/master/src/etc/rust-gdb
rust-lldbLLDB 的 Rust 修改版,用于在 Rust 代码中进行调试https://github.com/rust-lang/rust/tree/master/src/etc/rust-lldb
rustcRust 编译器,用于将 Rust 代码转换为可执行程序或库文件https://doc.rust-lang.org/rustc/
rustdocRust 文档生成器,用于在 Rust 代码中生成 API 文档和用户手册https://doc.rust-lang.org/rustdoc/
rustfmt一个格式化 Rust 代码的库和命令行工具,它可以自动化重构代码的缩进、空格、换行和其他风格问题,使代码变得更易于阅读和维护https://github.com/rust-lang/rustfmt
rustup用于安装、管理 Rust 工具链和版本的命令行工具https://rustup.rs/

只要点击上述链接,你就可以了解这些 Rust 工具的更多详细信息。

对之后的使用,我们可以使用 rustup 工具来管理这些工具链:

sh
# 更新 rustup
rustup self update
# 卸载 rust 所有程序
rustup self uninstall
# 更新工具链
rustup update

我们还可以使用它轻松地在 stable/beta/nightly 渠道中切换,比如:

sh
# 安装 nightly 版本的编译工具链
rustup install nightly
# 设置默认工具链是 nightly 版本
rustup default nightly
# 更新 rustup 到最新
rustup self update
# 更新 rust 编译器到最新的 nightly 版本
rustup update nightly

为了提高访问速度,中国科技大学 Linux 用户协会(USTC LUG)提供了一个代理服务, 建议国内用户设置好以下环境变量再使用 rustup:

sh
export RUSTUP_DIST_SERVER=https://mirrors.ustc.edu.cn/rust-static
export RUSTUP_UPDATE_ROOT=https://mirrors.ustc.edu.cn/rust-static/rustup

Rust 官方工具链还提供了重要的包管理工具 cargo,我们可以通过这个工具轻松导入或者发布开源库。大家可以登录这个网站浏览一下 Rust 社区热门的开源库都有哪些。大型项目往往需要依赖这些开源库,cargo 会帮我们自动下载编译。同样,为了解决网络问题,需要利用 USTC 提供的代理服务,因为 cargo 版本的不同,配置方式可能也会有差异;

推荐去 USTC 网站查看相关配置,这样,在编译需要依赖 crates.io 的项目时,不会由于网络问题导致依赖库下载失败。

rust-analyzer

mac 上,如果之前使用了 brew 安装 rust 工具;那么 rust-analyzer 可以通过下面的方式安装,主要是为了将其添加到系统路径 :

sh
rustup component add rust-analyzer
sudo ln -s $(rustup which rust-analyzer ) /usr/local/bin/rust-analyzer

rust-analyzer 项目开始于 2017 年年底(第一次提交)。当时,RLS 已经为 Rust 提供了数年的 IDE 支持。虽然 RLS 确实能够很好地处理一些重要功能,但它与 IDE 向其他一些语言所提供的功能丰富程度和体验上还有较大差距。

WARNING

❗:RLS 已被弃用,不再受支持。被 rust-analyzer 取代。官方鼓励用户卸载 RLS 并按照 rust-analyzer 手册中的说明为您的编辑器安装它。 :::

最初,rust-analyzer 只是为了 Rust 的容错解析。后来 rust-analyzer 的功能越来越强大,如今已经成为 Rust 编程中不可或缺的一个利器了。但 rust-analyzer 此前并不是一个官方的 Rust 项目,这为将 rust-analyzer 过渡为官方 LSP 实现增加了难度。

rust-analyzer 是 Rust 编程语言的语言服务器协议 (LSP) 的实现。它为许多代码编辑器(包括 VS Code、Emacs 和 Vim)提供完成和转到定义等功能。

VS Code 是目前对 rust-analyzer 支持最好的编辑器。

官方:This is the best supported editor at the moment. The rust-analyzer plugin for VS Code is maintained in tree.

有了这些准备,大家就可以在 Visual Studio Code 中下载支持 Rust 的插件,提升编辑体验。理论上来说,RLS 可以跟任何编辑器或者集成开发环境配合使用,只要这个编辑器实现了它们之间的通信协议即可。

有了上面这些准备工作,我们就可以正式开始 Rust 编程之旅了。首先,打开命令行工具,看看 rustc 编译器能否正常运行,使用-V命令查看 rustc 的版本:

sh
$ rustc -V
rustc 1.20.0-nightly (f85579d4a 2017-07-12)

如果看到类似的输出,说明编译器已经可以正常工作。接下来,请大家探索一下这些工具的简明使用帮助:

1)使用rustc -h命令查看 rustc 的基本用法;

2)使用cargo -h命令查看 cargo 的基本用法;

3)使用rustc -C help命令查看 rustc 的一些跟代码生成相关的选项;

4)使用rustc -W help命令查看 rustc 的一些跟代码警告相关的选项;

5)使用rustc -Z help命令查看 rustc 的一些跟编译器内部实现相关的选项;

WARNING

❗:the option Z is only accepted on the nightly compiler

6)使用rustc --help -v命令查看 rustc 的更详细的选项说明。

第三方 cargo 子命令

Released under the MIT License