创建新包
要使用 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
目录中。
在调试模式下编译是开发的默认设置。由于编译器不进行优化,因此编译时间更短,但代码运行速度会更慢。发布模式的编译时间更长,但代码运行速度更快。