rustbook-ch1-入门指南-总结

发布时间 2023-11-13 16:43:20作者: zhangzl419

rustbook-ch1-入门指南-总结

一、rust版本管理

1、安装rust之前需要安装一个C语言编译器。

正常编译、执行rust程序,需要一个链接器。由于C语言编译器通常都会附带链接器,所以需要安装一个C语言编译器。除了编译执行需要链接器外,一部分常用的Rust包会依赖使用C语言编写的代码,为了编译这些Rust代码,也需要安装一个C语言编译器。

2、安装rust的命令和卸载rust的命令

安装rust需要使用rust工具.

curl https://sh.rustup.rs -o rustup-init.sh #下载rustup安装脚本
./rustup-init.sh #安装rustup及rust工具链 ,默认装stable版本rust
rustup self uninstall #卸载rustup和rust工具链

3、用rustup管理rust的版本

rustup install nightly #安装nightly版本
rustup install stable/1.8.0 #安装stable版本,或者安装1.8.0版本
rustup show  #查看目前已经安装的rust版本,当前的默认版本或者叫active活动版本
rustup default #查看目前默认(active)版本
rustup default nightly/stable/1.8.0  #设置默认的rust版本,或者叫active活动rust版本,或者叫切换rust版本
rustup uninstall nightly/stable/1.8.0  #卸载某一个版本的rust
rustup update nightly/stable/1.8.0 更新rust版本和rustup,不写toolchain的版本,则更新默认的toolchain

4、概念辨析:channel、host triple、target、toolchains、profile、component

channel:

Rust 发布在三个不同的 channel上:stable、beta、nightly,简单说就是三种不同的版本。

- stable:Rust 的稳定版本,每 6 周发布一次。

- beta:Rust 的公开测试版本,将是下一个 stable 版本。

- nightly:每天更新,包含以一些实验性的新特性。

- edition: 目前有3个2015、2018、2021

host triple:主机三元组
target: =host triple,目标机器平台,指编译的目标平台,即编译后的程序在哪种操作系统上运行。

toolchains:
工具链,就是rust版本,一套 Rust 组件,包括编译器及其相关工具。

profile:
指的是toolchain的不同配置,包括3种:minimal 包含的工具最少;default 包含常用的工具;complete包含全部的工具。

为了方便对 component 进行管理,使用 profile 定义一组 component。

不同的 profile 包含不同的组件,安装 rustup 时有三种 profile 可选:

Profile component
minimal rustc, rust-std, cargo
default rustc, rust-std, cargo, rust-docs, rustfmt, clippy
complete all

修改 profile 命令如下:

rustup set profile minimal

component:toolchain 是由 component 组成的, component就是toolchain中的工具,一个工具就是一个组件,比如rustc是编译器工具,是工具链中的一个工具,所以rustc就是一个组件,cargo也是一个组件,等。

查看所有可用和已经安装的组件命令如下:

rustup component list

rustup 默认安装的组件:

  • rustc:Rust 编译器。
  • rust-std:Rust 标准库。
  • cargo:包管理和构建工具。
  • rust-docs:Rust 文档。
  • rustfmt:用来格式化 Rust 源代码。
  • clippy:Rust 的代码检查工具。

二、项目管理

5、cargo的基本用法

1 cargo new prjName  #新建一个包package
2 cd prjNameDir; cargo init #在存在一个package目录的情况下,用cargo创建项目
3 cargo check #检查package中的代码是否有编译错误,不会真的build
4 cargo fmt #格式化package中的rust代码
5 cargo build  --debug/--release  #编译package,默认是--debug
6 cargo run #以debug模式编译,并运行
7 cargo update #更新依赖的版本
8 cargo clean #移除target目录,清理编译结果
9 cargo doc --open #生成doc文档,并用默认浏览器打开
10 cargo add packageName #安装dependencies 比如cargo add rand就是安装rand库
11 carog remove pkgName #移除依赖 比如carog remove rand就是移除rand库
12 cargo install binName #安装二进制的crate到cargo/bin下
13 cargo uninstall binName #卸载二进制的crate
14 cargo package #将当前crate打包成crate
15 cargo publish #发布crate到crates.io,发布之前要cargo login,输入访问令牌token

6、crate是源代码的集合

依赖下载下来后是crate,但是crate是源代码的集合,所以在编译项目的时候,也是需要编译依赖的。

7、将手工创建的项目转为使用cargo管理的项目

如果没有使用 Cargo 开始项目,比如我们创建的 Hello,world! 项目,可以将其转化为一个 Cargo 项目。将代码放入 src 目录,并创建一个合适的 Cargo.toml 文件。

参考资料

1、https://kaisery.github.io/trpl-zh-cn/ch01-01-installation.html
2、https://blog.csdn.net/y1534414425/article/details/123931986
3、https://zhuanlan.zhihu.com/p/592293164