Rust 工具之 cargo

  |   0 评论   |   0 浏览

Cargo 是 Rust 的代码组织管理和项目构建工具,使用 rustup 安装 Rust 时,Cargo 默认也会被安装。

Cargo 的主要用途:

  • 创建和管理 Rust 的模块系统 。
  • 下载和管理依赖包。
  • 调用rustc或其他构建工具来构建项目(应用)。

Rust提供了一套模块系统来组织和管理代码,包括:模块(module)、Crate(package)和 工作空间(workspace)。

其中,(package)是包含一个或者多个 Crate的目录结构,类似于其他编程语言中项目的概念。而 Crate 的英文意思是箱子,它是一个 模块树,并且是编译的基本单元,可以将其编译成可执行程序(executable)或者库(library)。

创建包

用来创建包的命令是: cargo new ,通过 cargo new --help 可以查看该命令的帮助信息。

创建一个简单的包:

1$ cargo new hello_world --bin // --bin 表示创建的包中包含一个可编译成可执行文件的 Crate

hello_world 目录包含一个 Cargo.toml 文件和一个 src 目录。Cargo.toml 文件是一个配置文件,包含包名、版本、作者、依赖配置等信息。src 目录用来存放源码文件,其中 main.rs 是约定的可执行程序的入口文件。

1├── Cargo.toml
2└── src
3    └── main.rs

管理依赖

在开发过程中,如果用到了其他的 ,只需要将它们配置到 Cargo.toml 文件。在编译的时候,Cargo 会自动下载这些依赖 ,以及这些 依赖 的依赖包。

这些依赖包的信息存放在crates.io,我们也可以将自己开发的库上传到该网站分享给全世界(^_^)。

例如,要添加 timeregex 依赖,将其名称和版本添加到 Cargo.toml 文件的 [dependencies] 的下方即可。

1[package]
2name = "hello_world"
3version = "0.1.0"
4authors = ["Your Name <you@example.com>"]
5edition = "2018"
6
7[dependencies]
8time = "0.1.12"
9regex = "0.1.41"

构建和运行

目录下,运行 cargo build 命令构建项目,然后在 target/debug 目录中我们可以找到生成的可执行文件或者库文件。

1PS D:\rust\hello_world> cargo build
2   Compiling hello_world v0.1.0 (D:\Github\hello_world)
3    Finished dev [unoptimized + debuginfo] target(s) in 0.98s

另外,对于生成可执行文件的 ,Cargo 还提供了 cargo run 命令,该命令先构建项目,然后会运行生成的可执行程序。

1PS D:\rust\hello_world> cargo run
2    Finished dev [unoptimized + debuginfo] target(s) in 0.01s
3     Running `target\debug\hello_world.exe`
4Hello, world!
5PS D:\rust\hello_world>

相关资料

The Cargo Book
The Rust community’s crate registry
Managing Growing Projects with Packages, Crates, and Modules