rust 我们可以在Cargo.toml中为构建依赖项和开发依赖项使用特性标志吗?

tvmytwxo  于 2023-01-30  发布在  Go
关注(0)|答案(1)|浏览(133)

我在Cargo.toml文件中使用特性标志作为可选的依赖项,它可以按预期工作--编译较少数量的没有特性标志“bar”的板条箱。

[features]
bar = ["dep:foo"]

[dependencies]
foo = { version = "0.0.1", optional = true }

我想对可选的build-dependencies和可选的dev-dependencies使用类似的特性标志吗?我已经阅读了Cargo book的Feature resolver version 2部分:https://doc.rust-lang.org/cargo/reference/features.html#feature-resolver-version-2上面写着

  • 构建依赖项和过程宏不与普通依赖项共享功能。
  • 开发依赖项不会激活特性,除非构建了需要它们的目标(如测试或示例)。

我不知道这是什么意思。我可以使用它作为可选的编译如下?

[features]
build-bar = ["dep:build-foo"]

[build-dependencies]
build-foo = { git = "https://github.com/Me/MyRepo", branch = "feat1", optional = true }
gojuced7

gojuced71#

不,特性标志不适用于Cargo.toml文件中的构建依赖项和开发依赖项。这些依赖项总是在开发过程中构建和使用,而不管项目中指定了什么特性标志。

相关问题