Appearance
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 相关的命令行工具,它们各自有不同的用途:
工具 | 描述 | 链接 🔗 |
---|---|---|
cargo | Rust 的包管理工具,它可以处理包依赖、编译并构建 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-miri | Miri 是 Rust 官方提供的内存安全解释器,它可以在编译时检测内存越界、空指针引用等问题,帮助开发者识别和修复代码中的内存安全漏洞 | https://github.com/rust-lang/miri |
clippy-driver | 一个 Rust 静态分析工具的驱动程序,它基于 LLVM 的 Clang 静态分析器,并提供了 Rust 特定的语言支持,以检查代码中的潜在错误和不良风格 | https://github.com/rust-lang/rust-clippy |
rls | RLS 已被弃用,不再受支持。Rust 语言服务器,提供了自动补全、代码导航、语法检查等功能,帮助开发者更高效地编写 Rust 代码 | https://github.com/rust-lang/rls |
rust-gdb | GDB 的 Rust 修改版,用于在 Rust 代码中进行调试 | https://github.com/rust-lang/rust/tree/master/src/etc/rust-gdb |
rust-lldb | LLDB 的 Rust 修改版,用于在 Rust 代码中进行调试 | https://github.com/rust-lang/rust/tree/master/src/etc/rust-lldb |
rustc | Rust 编译器,用于将 Rust 代码转换为可执行程序或库文件 | https://doc.rust-lang.org/rustc/ |
rustdoc | Rust 文档生成器,用于在 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 的更详细的选项说明。