Rust编译器切换版本
环境:WSL2 ubuntu 20.04.6LTS
Rust编译器即rustc,由rustup统一管理该编译器的版本等信息。因此rustup尽量保持最新版本,使用rustup check查看该工具的版本情况
$ rustup check
stable-x86_64-unknown-linux-gnu - Update available : 1.87.0 (17067e9ac 2025-05-09) -> 1.88.0 (6b00bc388 2025-06-23)
rustup - Up to date : 1.28.2
若需要更新则,调用rustup update
但rust项目实际编译时使用命令工具的是cargo,这是因为cargo是rustc的封装上层工具。
cargo可以自行根据.toml文件生成.lock配置文件,相当于c++的MakeFile文件到cmake.txt。
因此当rustc编译器切换版本时,实际上cargo也会自动切换到相应版本上。
$Method$
确定要切换的版本
rustup工具在终端中无法直接列出相关版本号信息,只能直接指定版本,如nightly-2024-10-24或者1.80.0
可以通过官方网站查询最新的版本号记录
https://rust-lang.github.io/rustup-components-history/x86_64-unknown-linux-gnu.html
相关版本号,以及每个版本的改动细节
https://releases.rs/
安装指定版本
编译器版本有如下命名格式
-
发行版本
-
Nightly(开发版),master开发分支上日更的版本
-
Beta(预览版),每隔一段时间从master开发分支上分支出来的版本
-
Stable(稳定版)
-
-
语义化版本 (主版本号.次版本号.修订号,依次用
.隔开),格式:x.x.x-<发行版本>发行版本>-
主版本号:当做了不兼容的 API 修改
-
次版本号:当做了向下兼容的功能性新增
-
修订号:当做了向下兼容的问题修正
-
-
时间版本,格式:<发行版本>-year-month-day发行版本>
发行版本是起主要区分作用的发行通道
语义化版本和时间版本是在发行版本上进一步区分的,后两者区分作用几乎等价
指定发行版本
指定发行版本,这样会默认选择目前最新的发行版本
rustup install stable

指定时间版本
仅指定时间是无法找到对应具体版本的,得加上发行版本名称
rustup install nightly-2024-10-24
如rustup install 2024-10-24会报错

指定语义化版本
指定语义化版本
rustup install 1.80.0
默认是下载的Stable发行版本
也可以在之后加上发行版本名称,如
rustup install 1.80.0-beta
切换到该版本
切换方式有几种,根据作用时限分为临时性的和永久性的
临时切换
有两种方式,在终端编译时指定版本,或者在项目中创建新的配置文件规定编译该rust项目的编译器版本
- 终端输入编译命令时,指定编译器版本
cargo +stable-x86_64-unknown-linux-gnu build
- 在要编译的rust项目根目录中创建
rust-toolchain.toml文件,写入
[toolchain]
channel = "stable-x86_64-unknown-linux-gnu"
然后直接编译 cargo build,即是使用的指定编译器版本进行编译,在该项目中调用cargo或者rustc等其他工具也是自动切换成对应版本
永久切换
切换default编译器,在项目中未专门指定编译器版本的情况下会默认使用该编译器版本
rustup default nightly-2024-10-24
验证结果
检查当前的default编译器
rustc --version
cargo --version

可以发现rust相关工具的版本都统一切换了。
查看下载的所有编译器版本
rustup toolchain list

通过发行版本下载的编译器,通过rustup toolchain list展示的名称看不出来具体是什么版本,可以使用以下命令进一步查看其版本细节
rustup +stable-x86_64-unknown-linux-gnu --version

除此以外,通过该命令展现的版本号,也能区分当前是哪个发行版本下的
- Stable版本,展现的版本名称
rustc x.xx.x - Nightly版本,展现的版本名称
rustc x.xx.x-nightly - beta版本,展现的版本名称
rustc x.xx.x-beta.x
rust其他相关工具
- rustfmt:Rust 代码格式化工具。它会根据一套标准的 Rust 风格指南自动格式化你的代码。使用
rustfmt可以确保团队中所有人的代码风格一致,从而提高可读性和协作效率。你可以在命令行运行cargo fmt来使用它。 - rustdoc: Rust 文档生成器。它读取你的 Rust 源代码中的注释,并将其转换为 HTML 格式的文档网站。这是 Rust 社区中非常重要的一部分,所有官方库的文档都是用
rustdoc生成的。你可以通过cargo doc命令来生成项目文档。 - rust-analyzer:作用: Rust 语言服务器。这是一个强大的 IDE 工具,它为 VS Code、Emacs、Vim 等编辑器提供语言支持,包括代码自动补全、类型提示、错误检查、跳转到定义等功能。它能让你的编码体验更加流畅,通常由编辑器插件自动调用。
- rust-gdb 和 rust-lldb:Rust 调试器。它们是
gdb和lldb的封装,提供了对 Rust 代码更好的支持,比如可以正确显示 Rust 变量的类型和值。这些工具主要用于在程序崩溃或行为异常时进行调试。 - Clippy 是Rust 官方提供的代码检查lint 工具,通过静态分析,来检查代码中有问题或不符合指定规范的代码。
$Reference$
https://rustwiki.org/zh-CN/book/appendix-07-nightly-rust.html
https://rustwiki.org/zh-CN/edition-guide/rust-2018/rustup-for-managing-rust-versions.html
https://www.cnblogs.com/ysocean/p/16528078.html
https://www.cnblogs.com/rustln/p/15951813.html