You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.9 KiB

上手使用

Cargo 会在安装 Rust 的时候一并进行安装,无需我们手动的操作执行,安装 Rust 参见这里

在开始之前,先来明确一个名词: Package,由于 Crate 被翻译成包,因此 Package 再被翻译成包就很不合适。为此我们决定不对 Package 进行翻译,但是大家可以将其理解为软件包、项目或工程。

安装完成后,接下来使用 Cargo 来创建一个新的二进制 Package,二进制意味着该 Package 可以作为一个服务运行或被编译成可执行文件运行。

$ cargo new hello_world

这里我们使用 cargo new 创建一个新的 Package ,事实上该命令等价于 cargo new hello_world --binbinbinary 的简写,代表着二进制程序,由于 --bin 是默认参数,因此可以对其进行省略。

创建成功后,先来看看 Package 的目录结构长啥样:

$ cd hello_world
$ tree .
.
├── Cargo.toml
└── src
    └── main.rs

1 directory, 2 files

这里有一个很显眼的文件 Cargo.toml,一看就知道它是 Cargo 使用的配置文件,这个关系类似于: package.jsonnpm 的配置文件。

[package]
name = "hello_world"
version = "0.1.0"
edition = "2021"

[dependencies]

以上就是 Cargo.toml 的全部内容,它被称之为清单( manifest ),包含了 Cargo 编译程序所需的所有元数据。

下面是 src/main.rs 的内容

fn main() {
    println!("Hello, world!");
}

可以看出 Cargo 还为我们自动生成了一个 hello world 程序,或者说二进制包,对程序进行编译构建:

$ cargo build
   Compiling hello_world v0.1.0 (file:///path/to/package/hello_world)

然后再运行编译出的二进制可执行文件:

$ ./target/debug/hello_world
Hello, world!

注意到路径中的 debug 了吗?它说明我们刚才的编译是 Debug 模式,该模式主要用于测试目的,如果想要进行生产编译,我们需要使用 Release 模式 cargo build --release,然后通过 ./target/release/hello_world 运行。

除了上面的编译 + 运行方式外,在日常开发中,我们还可以使用一个简单的命令直接运行:

$ cargo run
     Fresh hello_world v0.1.0 (file:///path/to/package/hello_world)
   Running `target/hello_world`
Hello, world!

cargo run 会帮我们自动完成编译、运行的过程,当然,该命令也支持 Release 模式: cargo run --release

如果你的程序在跑性能测试 benchmark一定要使用 Relase 模式,因为该模式下,程序会做大量性能优化

在快速了解 Cargo 的使用方式后,下面,我们将正式进入 Cargo 的学习之旅。