ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

b.cargo配置参数.txt

2021-03-09 12:59:31  阅读:207  来源: 互联网

标签:cargo 依赖 features ... -- crates 参数 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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有