【问题标题】:Can I activate a dependency's feature only for debug profile?我可以仅为调试配置文件激活依赖项功能吗?
【发布时间】:2021-10-30 07:18:46
【问题描述】:

我刚刚开始研究 Rust 的 Bevy 游戏引擎。它有一个名为dynamic 的功能,可以启用动态链接,以加快开发过程中的编译时间。但是,我们建议在构建发布时禁用此功能。

有没有办法告诉 Cargo 在调试版本中启用 dynamic 功能,但在发布版本中禁用它?还是我必须亲自记住在运行cargo build --release 之前将Cargo.toml 中的bevy = { version = "0.5.0", features = ["dynamic"] } 更改为bevy = "0.5.0"?

【问题讨论】:

  • 我曾经做的是在 exe 本身中创建一个功能,添加所需的发布功能:[features] release = ["bevy/dynamic"],然后我有一个部署脚本,而不是cargo build --release,或者最近一个@ 987654321@.
  • 我发现了一个类似的问题here。我会做那里提到的任何事情,并分别有一个Makefile 到make release 和make debug。

标签: rust rust-cargo


【解决方案1】:

根据 Rodrigo 的评论,可以确认以下内容似乎运作良好:

[dependencies]
bevy = { version = "0.5.0" }

[features]
default = ["fast-compile"]
fast-compile = ["bevy/dynamic"]

然后进行开发,简单地说:cargo build

发布:cargo build --release --no-default-features

【讨论】:

  • 也就是说,至少,加载比手动更改Cargo.toml 更好。这不是最佳选择,因为我仍然必须首先记住标志。但这似乎是最符合人体工程学的解决方案。
猜你喜欢
  • 2010-12-11
  • 1970-01-01
  • 2017-04-12
  • 2011-06-14
  • 2010-10-30
  • 2011-04-01
  • 1970-01-01
  • 2017-03-23
相关资源
最近更新 更多