一、Rust的安装
Rust 的官方网址是: www.rust-lang.org/
1.1. 安装 Rust
1.1.1. 脚本安装方式
使用电脑打开到 Rust 的官方网站之后,Rust 会判断我们当前的操作系统并引导我们进行安装。
Windows 的 Linux子系统、Linux、MacOS 只需执行以下命令,即可根据提示进行安装
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
推荐使用脚本的方式进行安装,安装脚本会将 Rust 相关组件安装自己的用户目录上,并且设置好相关的环境变量
1.1.2. 二进制安装包安装
Rust 也支持使用二进制文件包的方式的安装方式。
打开其他安装方式的页面:forge.rust-lang.org/infra/other…,我们找到二进制安装包下载链接的页面位置,如下图所示
在编写此文档的时候,Rust的最新稳定版本是
1.60.0,你在打开的时候,页面可能有所变化。
找到与自己操作系统匹配的安装包,点击下载进行安装即可。
1.1.3. 包管理工具安装
包管理工具可以快速安装Rust,如mac电脑使用homebrew安装,如下命令
brew install rust
1.1.4. 安装验证
安装完成后,使用以下命令查看版本号,如果正常显示rust版本信息代表安装成功,否则重启终端或者检查其他原因
rustc --version
使用脚本方式安装的 Rust 会包含一个 rustup 工具,我们还可以使用 rustup 的 doc 指令通过浏览器打开本地文档,如下
rustup doc
1.2. IDE开发
如果使用 VsCode 或者 Intellij Idea 进行 Rust 代码开发,还可以在插件市场搜索 Rust,安装上 Rust 的官方插件,可以更好地在 IDE 中使用 Rust 的相关功能。
二、运行Hello World
2.1. 文件命名规范
我们通常使用一个 英文名称的 空目录作为 Rust 项目的目录,并遵循以下规范:
- 程序文件名后缀为:
rs - 文件命名应当使用小写,如果名称包含多个单词,每个单词之间使用下划线隔开,如:
hello_world.rs
2.2. 编写第一个Rust程序
2.2.1. 创建代码
创建一个名为hello_world的目录,在目录下创建main.rs文件,写入以下内容
fn main() {
println!("Hello, world!");
}
以上内容就是 Rust 程序最简单的代码:
-
定义函数:
fn main(){}代表一个没有参数也没有返回值的名为main的函数 -
main函数: 在Rust中,mian函数是Rust可执行程序的入口 -
打印文本:
println!("Hello, world!"),Rust代码的缩进是4个空格,而不是tab,println!是 Rust macro(宏),如果是函数,就没有!,Rust代码以;结尾
以上代码的功能是: 在mian 函数中调用 println!宏 在控制台打印了一条字符串:"Hello, world!"
2.2.2. 编译代码
使用以下命令进行编译
rustc main.rs
如果是在windows编译,生成的可执行文件名称为main.exe,使用以下命令执行
.\main.exe
如果是在mac/Linux中编译,生成的可执行文件名称为main,使用以下命令执行
./main
2.3. 总结
Rust 代码先编译成二进制可执行程序才能运行,编译命令为 rustc 源代码文件名 ,如
rustc main.rs
-
编译成功后,会生成一个二进制可执行文件,在 Windows 上还会多出一个后缀为
.pdb的文件,里面包含调试信息 -
Rust 是 ahead-of-time 编译的语言,可以先编译程序,然后把可执行文件交给别人运行,无需安装 Rust
-
rustc只适合简单的 Rust 程序,如果源代码比较多,使用rustc并不合适,在后续将会介绍Cargo,用于解决这个问题
三、Cargo构建工具
3.1. Cargo 简介
对于简单的程序,我们使用 rustc 命令即可编译,但对于较为复杂的程序,应当使用 Cargo 这个工具。Cargo 是 Rust 的构建系统和包管理工具,主要用于依赖库安装和代码构建。我们使用脚本安装 Rust 的时候已经安装上了 Cargo,使用以下查看 Cargo 版本的命令可以验证 Cargo 是否已经正常工作
cargo --version
3.2. 使用Cargo创建项目
3.2.1. 初始化项目
创建项目,如下命令
cargo new hello_cargo
命令执行之后,生成一个名为 hello_cargo 项目目录,目录中包含以下内容
src: 这个目录用于存放源代码,并默认生成了一个main.rs文件.gitignore: 默认生成的 gitignore 文件, 实际上,我们使用 Cargo 创建项目的时候,Cargo 帮我们在项目目录初始化了 git 仓库Cargo.toml: TOML(Tom's Obvious, Minimal Language)格式,是 Cargo 配置文件的格式,以下是默认的内容
[package]
name = "hello_cargo"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
3.2.2. 包信息配置
package: 是一个区域标题,在这里表示下方配置内容用来配置包(package)的
package下的配置项:
name: 项目名version: 项目版本authors: 项目作者edition: 项目使用的Rust版本
3.2.3. 依赖配置
dependencies: 该区域之下的内容,标识项目依赖的代码包或代码库,在 Rust 里,代码的包或库被称为crate
3.2.4. 文件结构说明
Cargo生成的 main.rs 在 src 目录下,而 Cargo.toml 在项目顶层下,源代码都应该在 src 目录下,顶层目录可以放置:README、许可信息、配置文件、其他与程序源代码无关的文件。
如果在创建项目的时候没有使用 Cargo 来创建,也可以把项目转化为 Cargo 项目,操作如下:
- 把源代码文件移到
src目录下 - 创建 Cargo.toml 并填写相应的配置
3.3. 构建项目
3.3.1. 编译代码
使用以下命令编译代码,生成二进制可执行文件
cargo build
如果是在Mac/Linux操作系统中,生成的二进制可执行文件路径如下
target/debug/hello_cargo
如果是在windows中,生成的二进制可执行文件路径如下
target/debug/hello_cargo.exe
第一次运行cargo build会在顶层目录生成 cargo.lock 文件,该文件负责追踪项目以来的确切版本,不需要手动去修改该文件
3.3.2. 编译并执行代码
我们还可以在编译代码后直接执行程序,使用如下命令
cargo run
实际上,执行 cargo run 命令后,cargo 先编译程序生成可执行文件,再执行程序,如果之前编程成功过,并且源代码没有修改的情况下,那么就会直接运行二进制可执行文件。
3.3.3. 检查代码
使用以下命令可以检查代码,确保编译通过,但不会产生任何可执行文件
cargo check
实际上,cargo check要比cargo build执行快的多,编写代码的时候开发者可以连续反复的使用cargo check检查代码,确保自己的代码写的没有问题,最后需要执行的时候再使用 cargo build 生成二进制可执行文件,提高开发效率。
3.3.4. 构建发行版程序
实际上,在上面执行 cargo build 命令生成了一个用于开发调试使用的二进制可执行文件,当我们真正需要发版的时候,需要 加上 --release 参数进行编译,如下命令
cargo build --release
加上 --release 参数后,编译时代码会进行优化,编译的时候变长,但生成的二进制可执行文件执行效率也更高。生成的二进制可执行文件将保存在 target/release 目录中,而不是 target/debug 目录中。
最后得出以下结论:
-
在项目开发中,代码编译时使用
cargo build命令 -
在项目发布时,代码编译使用
cargo build --release命令