我在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 }
1条答案
按热度按时间gojuced71#
不,特性标志不适用于Cargo.toml文件中的构建依赖项和开发依赖项。这些依赖项总是在开发过程中构建和使用,而不管项目中指定了什么特性标志。