Rust进阶(7)-cargo相关基础

cargo相关基础

1. 构建

  1. 生成debug
    1. 直接使用cargo runcargo build,生成的是debug模式的可执行文件
  2. 生成release
    1. cargo run --releasecargo build --release

2. 设置优化级别

优化级别越高,编译时间越长,级别:0到3
在cargo.toml中:

1
2
3
4
5
6
# cargo官方默认即 debug 0, release 3
[profile.dev]
opt-level = 0 # debug版

[profile.release]
opt-level = 3

3. 生成注释文档

最好在cargo中操作
使用:///,文档注释
使用: ///!,对包说明

1
2
3
4
5
6
7
8
# 生成文档
cargo doc

# 浏览器打开文档
cargo doc --open

# 自动测试
cargo test
1
2
3
4
5
6
7
8
9
10
///!My Crate
///! 'my_crate' is a collection of utiltes to make performing certain calcuations more convenient
///!
/// Add one to the number given
///
/// #Example
/// ```
/// let five = 5;
///
/// assert_eq!(6,mylib::add_one(5));

4. crate发布与撤回

  1. 创建Crates.io账号:通过Github账户注册,并通过cargo login来登陆
  2. 发布前需要在Cargo.toml中增加描述
1
2
3
4
5
6
[package]
name = "package_name"
version = "0.1.0"
license = "MIT" # LINUX 基金会对SPDX列出了可以使用的标识符
authors = ["your name"]
description = "some thing descript the package"
  1. 发布
1
cargo publish 
  1. 撤回指定版本
1
cargo yank --vers 0.1.0

5. 工作空间

  1. 用于管理项目根目录,模块划分。 比如创建主项目,多个lib。
  2. 为什么需要 workspace?
    1. 如果功能和逻辑都被构建在一个crate中,随着项目开发的深入,你可能会发现,crate越来越大,内部结构也越来越复杂。为了提高项目的可重用性,同时降低复杂度。你希望将此crate进一步拆分为多个crate。针对此种情况,Cargo.toml中提供了[workspace]配置。
  3. 什么是 workspace?
    1. workspace,顾名思义是工作空间。在工作空间中存在多个crate,它们共享Cargo.lock和target输出目录。
      cargo.toml
1
2
3
4
5
[workspace]
members = [
"addr",
"add-one",
]

此时执行项目的时候,需要指定项目:cargo run -p adder

总结

本文编辑完毕

参考

[1] Rust 程序设计语言

  • Copyrights © 2017-2023 Jason
  • Visitors: | Views:

谢谢打赏~

微信