Cargo
# 1 Cargo基本使用
Cargo 是 Rust 的构建系统和包管理器。它可以为你处理很多任务,比如构建代码、下载依赖库并编译这些库。(我们把代码所需要的库叫做 依赖(dependencies))。
可以在终端输入如下命令检查是否安装了 Cargo:
cargo --version
如果你看到了版本号,说明已安装!
目前了解以下几个命令即可:
cargo build
cargo run
cargo check
cargo build --release
2
3
4
# 1.1 使用 Cargo 创建项目
使用 Cargo 创建一个新项目:
cargo new hello_cargo
cd hello_cargo
2
进入 hello_cargo 目录并列出文件。将会看到 Cargo 生成了两个文件和一个目录:一个 Cargo.toml 文件,一个 src 目录,以及位于 src 目录中的 main.rs 文件。这也会在 hello_cargo 目录初始化了一个 git 仓库,以及一个 .gitignore 文件。
文件名:Cargo.toml
[package]
name = "hello_cargo"
version = "0.1.0"
edition = "2024"
[dependencies]
2
3
4
5
6
示例 1-2:cargo new
命令生成的 Cargo.toml 的内容
这个文件使用 [TOML][toml] (Tom's Obvious, Minimal Language) 格式,这是 Cargo 配置文件的格式。
第一行,[package]
,是一个片段 section 标题,表明下面的语句用来配置一个包。随着我们在这个文件增加更多的信息,还将增加其他 section。
最后一行,[dependencies]
,是罗列项目依赖的 section 的开始。在 Rust 中,代码包被称为 crates。这个项目并不需要其他的 crate。
文件名:src/main.rs
fn main() {
println!("Hello, world!");
}
2
3
# 1.2 其他命令
# 1.2.1 cargo build
cargo build
Compiling hello_cargo v0.1.0 (file:///projects/hello_cargo)
Finished dev [unoptimized + debuginfo] target(s) in 2.85 secs
2
3
这个命令会创建一个可执行文件 target/debug/hello_cargo (在 Windows 上是 target\debug\hello_cargo.exe),而不是放在目前目录下。
# 1.2.2 cargo run
刚刚使用 cargo build
构建了项目,并使用 ./target/debug/hello_cargo
运行了程序,也可以使用 cargo run
在一个命令中同时编译并运行生成的可执行文件:
cargo run
Finished dev [unoptimized + debuginfo] target(s) in 0.0 secs
Running `target/debug/hello_cargo`
Hello, world!
2
3
4
# 1.2.3 cargo check
Cargo 还提供了一个叫 cargo check
的命令。该命令快速检查代码确保其可以编译,但并不产生可执行文件:
cargo check
Checking hello_cargo v0.1.0 (file:///projects/hello_cargo)
Finished dev [unoptimized + debuginfo] target(s) in 0.32 secs
2
3
# 1.2.4 cargo build --release
当项目最终准备好发布时,可以使用 cargo build --release
来优化编译项目。这会在 target/release 而不是 target/debug 下生成可执行文件。这些优化可以让 Rust 代码运行的更快,不过启用这些优化也需要消耗更长的编译时间。
变量→