b.cargo配置参数.txt
作者:互联网
#######################################################################
# 详细教程地址:https://learnku.com/docs/cargo-book/2018/
# https://www.jianshu.com/p/22a467204def?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
#
# Cargo 启动新项目 cargo new hello_world --bin
# 我们传递 --bin,是因为我们正在制作一个二进制程序 (默认): 如果我们正在创建一个库 (lib),我们就会把传递 --lib.
# 默认情况下,这个目录会初始化为一个新的 git 存储库,如果您不希望它这样做,请传递 --vcs none
# cargo update # updates all dependencies
# cargo update -p rand # updates just “rand”
# 使用 cargo test 命令运行您的测试
# Cargo 寻找在两个地方运行的测试:在你 src 中的每个文件,和 tests/ 中的任何测试。测试你的 src 文件应该是单元测试,并在 tests/ 中的应该是整合式测试。因此,您需要将包装箱导入到 tests 的文件中.
#
# 编译:cargo build (或者cargo build --release) 运行:cargo run 语法检查(速度比编译快的多):cargo check 查看被宏隐藏的代码:cargo expand
#
# Cargo 做了四件事:
# 引入两个,包含各种项目信息的元数据文件。
# 获取,并构建项目的依赖项.
# 正确使用参数,以调用 rustc 或其他构建工具,构建你的项目。
# 介绍,更容易使用 Rust 项目的约定 (规范 / 风格)。
#
# Cargo.lock 文件啊,是包含我们的依赖项的有关信息 (即便还没有依赖)
#
# crates.io 是 Rust 社区的中央存储库,用作发现和下载包的位置。cargo 默认配置为,使用它来查找请求的包.
#
# 依赖第三方库的例子:
# [dependencies]
# regex = "0.1.41"
# //可有可无 rust2018
# //extern crate regex;
# use regex::Regex;
# fn main() {
# let re = Regex::new(r"^\d{4}-\d{2}-\d{2}$").unwrap();
# println!("Did our date match? {}", re.is_match("2014-01-01"));
# }
#
#######################################################################
[package]
name = "tt20210115"
version = "0.1.0"
authors = ["liujiayu"]
edition = "2018"
# exclude 字段标识了在发布包时,不包括的一组文件,以及检测何时重建包时,应该忽略的文件,而 include 就是显式指定一定包含的文件。
# exclude = ["build/**/*.o", "doc/**/*.md"]
# include = ["src/**/*", "Cargo.toml"]
# 这个 publish 字段通过错误,防止将包 (crate),发布到包注册中心 (如 crates.io)。
# publish = false
# 这个 workspace 字段可用于配置此包将属于的工作区。如果没有指定,这将被推断为文件系统中第一个 Cargo.toml 的 [workspace]。
# workspace = "path/to/workspace/root"
# 关于包的简短介绍. 这不会以任何格式呈现
# 到 crates.io (又名 这不是markdown).
# description = "..."
# 这些URL指向有关包的更多信息 这些是
# 旨在成为相关数据的网页入口, 不一定兼容
# VCS工具(类似的)等.
# documentation = "..."
# homepage = "..."
# repository = "..."
# 这指向包根目录下的文件 (与 `Cargo.toml` 相对的).
# 该文件的内容会存储,并在注册表中编入索引。
# crates.io 将渲染此文件,并将结果放在包的页面上.
# readme = "..."
# 这是一个,最多五个描述此箱的关键字的列表. 关键词
# 可以在 crates.io 上搜索, 和你可以选择任何单词
# 帮助别人找到这个箱子。
# keywords = ["...", "..."]
# 这是此箱子最适合的(最多五个)类别的列表.
# 类别是 crates.io/category_slugs 上可用的固定列表, 和
# 他们必须完全匹配.
# categories = ["...", "..."]
# 这是此包的SPDX 2.1许可证表达式. 目前
# crates.io将根据白名单的已知许可证和SPDX许可证列表2.4中的异常标识符,
# 验证提供的许可证。目前不支持括号。
#
# 使用AND和OR的许可证表达式
# 运算符以获得更明确的语义。
# license = "..."
# 如果程序包使用非标准许可证, 则可以指定此 key
# 代替上述 key 和 必须指向相对于此清单的文件
# (类似于 readme key).
# license-file = "..."
# ========================================================================
[dependencies]
#time = "0.1.12"
regex = "0.1.41"
#rand = { git = "https://github.com/rust-lang-nursery/rand.git" }
hello_utils = { path = "hello_utils" }
#hello_utils = { path = "hello_utils", version = "0.1.0" }
# 必要的依赖
# cookie = "1.2.0"
# 可选依赖
# jquery = { version = "1.0.2", optional = true }
# ========================================================================
#包可以定义一个工作区,它是一组箱,所有箱将共享相同 Cargo.lock 和输出目录
[workspace]
# 可选字段,从路径依赖推断(如果不存在)。
# 此处必须给出,包含的其他非路径依赖。
# 特别是, 对于 一个虚拟清单,所有成员都要列出来。
members = [
"hello_utils"
]
# 可选字段, 如果不存在则为空
# exclude = ["path1", "path/to/dir2"]
# ========================================================================
# 此为 开发配置文件, 给 `cargo build` 所使用.
[profile.dev]
#opt-level = 0 # 控制编译器构建的`--opt-level`。
# 0-1适合调试。 2是良好优化的。最大为 3。
# 's' 企图优化大小, 'z' 则 进一步优化大小.
#debug = true # (u32 or bool) 包括调试信息(调试符号).
# 相当于 `-C debuginfo=2` 编译器 标志.
#rpath = false # 控制 编译器 是否应该设置加载器路径.
# 若为 true, 传递 `-C rpath` 标志 给 编译器.
#lto = false # 链接时间优化通常会减少二进制文件和静态库的大小
# 但会增加编译时间.
# 若是 true, 传递 `-C lto` 标志 给 编译器, 和 若是一个
# 字符串值 像 'thin' ,那会传递 `-C lto=thin`
# 给 编译器
#debug-assertions = true # 控制是否启用调试断言
# (e.g. debug_assert!() 和 算术溢出检查)
#codegen-units = 16 # if > 1 并行代码生成,以改善
# 编译时间, 但阻止了些优化.
# 传递 `-C codegen-units`.
#panic = 'unwind' # 恐慌策略 (`-C panic=...`), 也可以是 'abort'
#incremental = true # 是否启用增量编译
#overflow-checks = true # 使用溢出检查进行整数运算。
# 传递 `-C overflow-checks=...`标志 给 compiler.
# `cargo test --release`, 包括本地 library 或 binary).
[profile.release]
# 测试的配置文件, 用于 `cargo test` (对于 `cargo test --release`,可看
# `release` 和 `bench` 配置文件).
[profile.test]
# 基准的配置文件, 用于`cargo bench` (和 要测试的目标 和
# 单元测试的 `cargo test --release`).
[profile.bench]
# 文档模板,对应`cargo doc`命令
[profile.doc]
# 注意,此处的cfg可以使用not、any、all等操作符任意组合键值对。
# 并且此用法仅支持cargo 0.9.0(rust 1.8.0)以上版本。
# 如果是windows平台,则需要此依赖。
# [target.'cfg(windows)'.dependencies]
# winhttp = "0.4.0"
#
# [target.'cfg(unix)'.dependencies]
# openssl = "1.0.1"
# ========================================================================
[features]
# features组只能依赖于可选软件包.features的一个重要用途就是,当开发者需要对软件包进行最终的发布时,在进行构建时可以声明暴露给终端
# 用户的features,这可以通过下述命令实现:$ cargo build --release --features "shumway pdf"
# 使用features时需要遵循以下规则:
# 1.feature名称在本描述文件中不能与出现的软件包名称冲突
# 2.除了default feature,其他所有的features均是可选的
# 3.features不能相互循环包含
# 4.开发依赖包不能包含在内
# 段落中的字段被用于条件编译选项或者是可选依赖
# 此字段设置了可选依赖的默认选择列表,
# 注意这里的"session"并非一个软件包名称,
# 而是另一个featrue字段session
# default = ["jquery", "uglifier", "session"]
# 类似这样的值为空的feature一般用于条件编译,
# 类似于`#[cfg(feature = "go-faster")]`。
# go-faster = []
# 此feature依赖于bcrypt软件包,
# 这样封装的好处是未来可以对secure-password此feature增加可选项目。
# secure-password = ["bcrypt"]
# 此处的session字段导入了cookie软件包中的feature段落中的session字段
# session = ["cookie/session"]
# 如果其他软件包要依赖使用本awesome软件包,可以在其描述文件中这样写:
# [dependencies.awesome]
# version = "1.3.5"
# default-features = false # 禁用awesome 的默认features
# features = ["secure-password", "civet"] # 使用此处列举的各项features
# ========================================================================
# [lib]
# name = "..."
# crate-type = ["dylib"] #可用的选项是 dylib,rlib,staticlib,cdylib 和 proc-macro
# ========================================================================
# 这部分可以用来重写其他副本的依赖项 . 这个 [patch] 表格由,类似依赖表格的子表组成
#[patch.crates-io]
#foo = { git = 'https://github.com/example/foo' }
#bar = { path = 'my/local/bar' }
# ========================================================================
# 这部分可以用来重写其他副本的依赖项 . 表格的每个字段都是包标识规范,它任意选择依赖图中的节点来重写
#[replace]
#"foo:0.1.0" = { git = 'https://github.com/example/foo' }
#"bar:1.0.2" = { path = 'my/local/bar' }
# ========================================================================
# ========================================================================
# ========================================================================
# ========================================================================
标签:cargo,依赖,features,...,--,crates,参数,txt 来源: https://blog.csdn.net/liujiayu2/article/details/114580179