0


认识rust的项目管理工具--cargo

cargo 提供了一系列的工具,从项目的建立、构建到测试、运行直至部署,为 Rust 项目的管理提供尽可能完整的手段。不过,我们无需再手动安装,之前安装 Rust 的时候(用rustup或者vscode加插件的方式安装),就已经一并安装了。
用cargo new来创建新的项目,该项目的结构和配置文件都是由 cargo 生成,意味着我们的项目被 cargo 所管理
$ cargo new world_hello
$ cd world_hello

$ tree
.
├── .git
├── .gitignore
├── Cargo.toml
└── src
└── main.rs

Rust 项目主要分为两个类型:bin 和 lib,前者是一个可运行的项目(默认),后者是一个依赖库项目。

运行项目
有两种方式可以运行项目:
cargo run
cargo run 首先对项目进行编译,然后再运行,因此它实际上等同于运行了两个指令
手动编译和运行项目
cargo build
./target/debug/world_hello(debug 模式,在这种模式下,代码的编译速度会非常快,可是福兮祸所伏,运行速度就慢了. 原因是,在 debug 模式下,Rust 编译器不会做任何的优化,只为了尽快的编译完成,让你的开发流程更加顺畅。)
cargo run --release 提高运行速度
cargo build --release
$ ./target/release/world_hello
Hello, world!

当项目大了后,cargo run 和 cargo build 不可避免的会变慢,那么有没有更快的方式来验证代码的正确性呢?大杀器来了,接着!
cargo check 是我们在代码开发过程中最常用的命令,它的作用很简单:快速的检查一下代码能否编译通过。因此该命令速度会非常快,能节省大量的编译时间。

Cargo.toml 和 Cargo.lock 是 cargo 的核心文件,它的所有活动均基于此二者。
Cargo.toml 是 cargo 特有的项目数据描述文件。它存储了项目的所有元配置信息,如果 Rust 开发者希望 Rust 项目能够按照期望的方式进行构建、测试和运行,那么,必须按照合理的方式构建 Cargo.toml。

[package]
name ="world_hello"
version ="0.1.0"
edition ="2021"

Cargo.lock 文件是 cargo 工具根据同一项目的 toml 文件生成的项目依赖详细清单,因此我们一般不用修改它,只需要对着 Cargo.toml 文件撸就行了。

依赖管理
使用 cargo 工具的最大优势就在于,能够对该项目的各种依赖项进行方便、统一和灵活的管理。
在 Cargo.toml 中,主要通过各种依赖段落来描述该项目的各种依赖项:

基于 Rust 官方仓库 crates.io,通过版本说明来描述
基于项目源代码的 git 仓库地址,通过 URL 来描述
基于本地项目的绝对路径或者相对路径,通过类 Unix 模式的路径来描述
这三种形式具体写法如下:

[dependencies]
rand ="0.3"
hammer ={ version ="0.5.0"}
color ={git="https://github.com/bjz/color-rs"}
geometry ={ path ="crates/geometry"}

crates.io它的默认镜像地址是在国外,这就导致了某些时候难免会遇到下载缓慢或者卡住的情况
增加新的镜像地址
首先是在 crates.io 之外添加新的注册服务
[registries]
ustc = { index = “https://mirrors.ustc.edu.cn/crates.io-index/” }
Cargo.toml 中使用以下方式引入:
[dependencies]
time = { registry = “ustc” }

第二种方式,则不需要修改 Cargo.toml 文件,因为它是直接使用新注册服务来替代默认的 crates.io。
在 $HOME/.cargo/config.toml 添加以下内容:
[source.crates-io]
replace-with = ‘ustc’

[source.ustc]
registry = “git://mirrors.ustc.edu.cn/crates.io-index”


本文转载自: https://blog.csdn.net/weixin_53344209/article/details/129958084
版权归原作者 explore翔 所有, 如有侵权,请联系我们删除。

“认识rust的项目管理工具--cargo”的评论:

还没有评论