创建新包
要使用 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 模式编译时间较长,但代码运行会更快。