【发布时间】:2021-02-27 13:32:32
【问题描述】:
我有一个可以使用或不使用功能进行编译的 crate,比如说feat_crate。
我从一个程序中使用该 crate,该程序也可以在有或没有特性 feat_app 的情况下进行编译。
我想在启用feat_app 时为依赖项启用feat_crate; feat_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