创建新包

要使用 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 = "2024"

[dependencies]

这被称为 manifest(清单),它包含了 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 中。

在 debug 模式下编译是开发的默认设置。 编译时间较短,因为编译器不做优化,但代码运行会较慢。 Release 模式编译时间较长,但代码运行会更快。