创建新包
使用 cargo new
命令创建新的 package "包":
$ 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]
其内容称为 manifest "配置清单",包含Cargo编译时所需的所有元数据。 此文件采用 TOML (发音为 /tɑməl/) 格式书写。
这是 src/main.rs
的内容:
fn main() { println!("Hello, world!"); }
Cargo 生成了一个 "hello world" 程序,也称 binary crate "二进制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 mode)下进行。 由于编译器不进行编译优化,能缩短编译耗时,但编译后的代码运行会更慢。 发布模式(release mode)下的编译耗时更长但代码运行更快。