创建新包

要使用 Cargo 创建新的 “包”,请使用 cargo new 命令

$ cargo new hello_world --bin

我们传递 --bin 参数是因为我们要创建一个二进制程序:如果要创建一个库,则应传递 --lib 参数。默认情况下,这也会初始化一个新的 git 仓库。如果您不希望这样做,请传递 --vcs none 参数。

让我们看看 Cargo 为我们生成了什么

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

1 directory, 2 files

让我们仔细看看 Cargo.toml 文件

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

[dependencies]

这被称为 清单,它包含 Cargo 编译包所需的所有元数据。此文件使用 TOML 格式(发音为 /tɑməl/)编写。

以下是 src/main.rs 文件的内容

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

Cargo 为我们生成了一个“hello world”程序,也称为 二进制 crate。让我们编译它

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

然后运行它

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

我们也可以使用 cargo run 命令一步完成编译和运行(如果您自上次编译后没有进行任何更改,则不会看到 Compiling 行)

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

您现在会注意到一个新文件 Cargo.lock。它包含有关我们依赖项的信息。由于我们还没有任何依赖项,因此它并不十分有趣。

准备好发布后,您可以使用 cargo build --release 命令在启用优化的情况下编译文件

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

cargo build --release 命令将生成的二进制文件放在 target/release 目录中,而不是 target/debug 目录中。

在调试模式下编译是开发的默认设置。由于编译器不进行优化,因此编译时间更短,但代码运行速度会更慢。发布模式的编译时间更长,但代码运行速度更快。