文章目录

  • 前言
  • 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那样清晰;