文章目录
- 前言
- 1.1 Rust工具链简介
- 1.2 Rust工具链安装
- 1.2.1 rustup安装
- 配置rustup镜像
- 安装rustup
- rustup简单使用
- 1.2.2 cargo
- 配置
- 常用指令的基本用法
- 1.3 vscode配置
- 1.4 常用资料
前言
学习一门编程语言的第一步肯定是安装好开发环境啦~
1.1 Rust工具链简介
这里简单介绍常见的几个工具是用来做什么的(因为更多的工具我也不知道用来干什么…)
- rustup:官方提供的一个工具链管理工具。rust与java等运行在虚拟机上的语言不同,rust项目需要编译成指定操作系统在指定架构上的程序才能运行,为此编译rust项目时需要使用不同的工具链“套装”,rustup可以通过用户使用简单的命令来安管理(安装、切换、更新、删除等)这些“套装”。另外rust还分stable(功能稳定),beta(功能基本稳定,带点新功能),nightly(完全不稳定,每晚自动构建)版本,可以通过rustup进行安装稳定程度不同的工具链“套装”(有些插件或者工具可能需要使用nightly才能编译)。当然初学阶段我们也不需要考虑这么多,我们只需要能用最基础的功能,一些扩展的功能等要用的时候再去查怎么用。
- rustc:rust编译器,即输入rust的源文件,输出编译后的可执行文件,当然一般我们不会直接使用rustc,就好像我们不会直接使用javac编译程序一样。
- cargo:rust官方包管理平台,作用类似于java的maven,python的pip,nodejs的npm等。使用rustup安装工具链“套装”后就会有。我们会使用cargo去创建项目、管理项目、搜索第三方库(crate)、维护项目依赖、构建项目、运行单元测试、安装/卸载rust实现的软件…rust工具链里面我们打交道最多的就是cargo了。
下面开始介绍如何安装rust工具链
1.2 Rust工具链安装
1.2.1 rustup安装
配置rustup镜像
因为rust的大部分资源都位于国外,国内下载会比较慢,所以建议安装工具链前配置国内的镜像源,这样安装会比较快。这里推荐使用字节的镜像(rsproxy.cn),直接登录该网站也有简单的说明怎样配置。
# source ~/.bashrc
export RUSTUP_DIST_SERVER="https://rsproxy.cn"
export RUSTUP_UPDATE_ROOT="https://rsproxy.cn/rustup"
windows将这两个选项加到环境变量里面即可
安装rustup
curl --proto '=https' --tlsv1.2 -sSf https://rsproxy.cn/rustup-init.sh | sh
也可以去官网查看如何下载安装:https://www.rust-lang.org/tools/install。
如果在windows环境下安装,安装脚本可能会检查有没有vs的编译环境,没有的话可以根据提示先把相关的依赖安装了再继续后续的rustup安装。
rustup简单使用
-
rustup
:查看帮助文档,看有哪些命令可以使用的; -
rustup update
:更新当前的工具链; -
rustup self uninstall
:卸载 -
rustup doc
:查看本地文档,这个巨好用,除了有官方的rust教程以外,还有标准库文档,平时开发的时候会经常查询(然后你就会发现rust的标准库相比于go, python等语言来说是多么简洁,很多常用的功能都没有…当然这个与rust语言的定位有关,但也希望后续能丰富起来)。 rustup component add XXX
:安装一些常见的工具,比如语言服务器、格式化工具、语法检查工具等(也就是说跟go类似,rust提供了一整套开发用的辅助工具,无论是使用Intellj的rust插件、vscode、还是vim,其背后运行的辅助工具是相同的,但是同一类工具还是会有不同实现,有些非官方的工具体验会比官方的强很多,后续也会介绍,这一点不需要担心,因为编辑器会提示我们安装什么工具):
rustup component add rls
rustup component add rustfmt
rustup component add clippy
1.2.2 cargo
配置
前面配置的环境变量只是对rustup起作用,对于cargo来说还需要另外配置镜像源。
# $HOME/.cargo/config
[source.crates-io]
replace-with = 'rsproxy'
[source.rsproxy]
registry = "https://rsproxy.cn/crates.io-index"
[registries.rsproxy]
index = "https://rsproxy.cn/crates.io-index"
[net]
git-fetch-with-cli = true
windows环境配置在相应的文件中即可。
常用指令的基本用法
-
cargo
:查看帮助文档; -
cargo --version
:查看版本; -
cargo new project-name
:创建一个项目(包括这个项目的目录); -
cargo init
:直接在当前目录初始化项目; cargo build
:构建项目,命令要在项目根目录中执行,默认构造的是debug版本,输出结果会保存在target/debug
中;
-
cargo build --release
:编译release版本,不带调试信息,性能会更高,输出结果会保存在target/release
中;
-
cargo run
:运行编译好的项目,命令要在项目根目录中执行,如果源码被修改过,会重新编译修改过的部分然后再运行; -
cargo fmt
:格式化项目源码; -
cargo check
:仅检查代码是否可以编译,但不生成可执行文件; -
cargo clean
:清理之前的构建产物; -
cargo update
:根据本地的lock file更新依赖; -
cargo doc
:生成文档,如果加上--open
则表示生成后在浏览器中打开; -
cargo fix
:自动修复一些编译器提示的错误,或者进行过rust edition升级后,也可以让项目自动升级到新的edition上; -
cargo search XXX
:搜索第三方crate XXX; -
cargo test
:执行项目中的测试文件; -
cargo install XXX
:下载编译并安装XXX,默认安装路径$HOME/.cargo/bin
; -
cargo uninstall XXX
:移除一个已安装的可执行文件XXX; -
cargo package
:打包项目; -
cargo publish
:将项目上传; -
cargo vendor
:将依赖迁入本地项目中,避免安装时要下载第三方库;
1.3 vscode配置
需要安装的插件如下:
-
Rust Extension Pack
:包含Rust
(Rust官方提供的插件,RLS、语法检查、代码补全等),crates
(crate依赖管理),BetterTOML
(TOML语法支持)。安装后把Rust关掉,因为官方提供的这个插件差强人意现在默认就是使用rust-analyzer
,所以直接安装这个插件即可; rust-analyzer:用来替代Rust
的的第三方插件,它提供的能力比Rust
强很多,体验也更好(比如类型推断标识,这对Rust开发者来说非常使用),但是一定要注意要把Rust
关掉,否则rust-analyzer
不会生效;CodeLLDB
:调试工具。如果是windows下使用会有如下需要注意的:
- 会下载主体,而且还比较慢,偶尔插件升级后会自动下载主体,这个时候这个插件功能好像会用不了;
- 启动debug后同一个变量在watch列表会出现多次(每次变量被访问一次就会创建一个),不像linux/macos那样清晰;