From 5d61a755bd53006163db1b0a8d50223fde564349 Mon Sep 17 00:00:00 2001 From: sunface Date: Mon, 21 Feb 2022 16:43:21 +0800 Subject: [PATCH] add cargo target --- contents/cargo/reference/cargo-target.md | 25 ++++++++++++++++++++++-- contents/cargo/reference/manifest.md | 10 +++++----- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/contents/cargo/reference/cargo-target.md b/contents/cargo/reference/cargo-target.md index 5f4901e5..b64a73ab 100644 --- a/contents/cargo/reference/cargo-target.md +++ b/contents/cargo/reference/cargo-target.md @@ -8,7 +8,7 @@ ## 对象介绍 在开始讲解如何配置对象前,我们先来看看这些对象究竟是什么,估计还有些同学对此有些迷糊 :) -#### 库对象( Library ) +#### 库对象(Library) 库对象用于定义一个库,该库可以被其它的库或者可执行文件所链接。**该对象包含的默认文件名是 `src/lib.rs`,且默认情况下,库对象的名称[跟项目名是一致的](https://course.rs/basic/crate-module/crate.html#package)**, 一个工程只能有一个库对象,因此也只能有一个 `src/lib.rs` 文件,以下是一种自定义配置: @@ -150,4 +150,25 @@ autobins = false autoexamples = false autotests = false autobenches = false -``` \ No newline at end of file +``` + +只有在特定场景下才应该禁用自动对象发现。例如,你有一个模块想要命名为 `bin`,目录结构如下: +```shell +├── Cargo.toml +└── src +    ├── lib.rs +    └── bin +       └── mod.rs +``` + +这在默认情况下会导致问题,因为 `Cargo` 会使用 `src/bin` 作为存放二进制对象的地方。 + +为了阻止这一点,可以设置 `autobins = false` : +```toml +├── Cargo.toml +└── src +    ├── lib.rs +    └── bin +       └── mod.rs +``` + diff --git a/contents/cargo/reference/manifest.md b/contents/cargo/reference/manifest.md index 020bf0a1..032d1c05 100644 --- a/contents/cargo/reference/manifest.md +++ b/contents/cargo/reference/manifest.md @@ -31,11 +31,11 @@ * [`autobenches`](cargo-target.md#对象自动发现) — 禁止 bench 文件的自动发现 * [`resolver`](resolver.md#resolver-versions) — 设置依赖解析器( dependency resolver) * Cargo Target 列表: (查看 [Target 配置](cargo-target.md#Target配置) 获取详细设置) - * [`[lib]`](./cargo-target.md#库对象) — Library target 设置. - * [`[[bin]]`](cargo-target.md#二进制对象) — Binary target 设置. - * [`[[example]]`](cargo-target.md#示例对象) — Example target 设置. - * [`[[test]]`](cargo-target.md#测试对象) — Test target 设置. - * [`[[bench]]`](cargo-target.md#基准性能对象) — Benchmark target 设置. + * [`[lib]`](./cargo-target.md#库对象library) — Library target 设置. + * [`[[bin]]`](cargo-target.md#二进制对象binaries) — Binary target 设置. + * [`[[example]]`](cargo-target.md#示例对象examples) — Example target 设置. + * [`[[test]]`](cargo-target.md#测试对象tests) — Test target 设置. + * [`[[bench]]`](cargo-target.md#基准性能对象benches) — Benchmark target 设置. * Dependency tables: * [`[dependencies]`](specify-deps.md) — 项目依赖包 * [`[dev-dependencies]`](specify-deps.md#dev-dependencies) — 用于 examples、tests 和 benchmarks 的依赖包