Rust 工具之 cargo

本贴最后更新于 1424 天前,其中的信息可能已经沧海桑田

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

Cargo 的主要用途:

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

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

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

创建包

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

创建一个简单的包:

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

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

├── Cargo.toml
└── src
    └── main.rs

管理依赖

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

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

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

[package]
name = "hello_world"
version = "0.1.0"
authors = ["Your Name <you@example.com>"]
edition = "2018"

[dependencies]
time = "0.1.12"
regex = "0.1.41"

构建和运行

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

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

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

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

相关资料

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

  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    58 引用 • 22 回帖 • 4 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...