【问题标题】:How to enable a crate feature dynamically? [duplicate]如何动态启用板条箱功能? [复制]
【发布时间】:2021-02-27 13:32:32
【问题描述】:

我有一个可以使用或不使用功能进行编译的 crate,比如说feat_crate

我从一个程序中使用该 crate,该程序也可以在有或没有特性 feat_app 的情况下进行编译。

我想在启用feat_app 时为依赖项启用feat_cratefeat_app 在构建应用程序时启用(如 cargo run -- --feat_app ⚠ 编辑,如 cargo run --features feat_app)。

每次我想更改启用的功能时,如果不修改Cargo.toml 文件,我就找不到简单的方法。我尝试查看构建脚本,但应用程序的脚本是在编译依赖项后执行的,所以它似乎没有帮助。

我可能可以使用从 crate 构建脚本中获取的环境变量,这意味着我必须相应地设置该环境变量……但我希望有更好的解决方案。 ????

【问题讨论】:

  • “feat_app 在构建应用程序时启用(如在cargo run -- --feat_app 中)。” 根据--feat_app 选项以不同方式编译程序是否是要求的一部分?这个永远不会真正传递到编译器中。
  • 他们可能是指--features feat_app?否则文字描述实际上没有意义。
  • 你说得对,我编辑了问题。

标签: build rust rust-cargo


【解决方案1】:

来自the features documentation

功能可用于重新导出其他软件包的功能。包awesomesession 功能(注意:这是“当前”包)将确保包cookiesession 功能也被启用。

session = ["cookie/session"]

【讨论】:

  • 谢谢!我想知道这样的功能怎么还没有实现……
猜你喜欢
  • 1970-01-01
  • 2020-12-26
  • 1970-01-01
  • 2023-01-20
  • 1970-01-01
  • 2021-03-01
  • 2021-04-02
  • 2022-06-18
  • 1970-01-01
相关资源
最近更新 更多