编译时自动检查cfg配置

编译时自动检查cfg配置

💡 原文英文,约700词,阅读约需3分钟。
📝

内容提要

Rust 1.80将自动检查#[cfg]是否与预期的配置名称和值匹配,以帮助验证crate是否正确处理不同目标平台或功能的条件编译。这有助于捕捉开发过程中的潜在错误。Cargo还提供了新的指令cargo::rustc-check-cfg,用于检查自定义cfg。该功能无法禁用,但可以通过控制lints来控制。

🎯

关键要点

  • Rust 1.80将自动检查#[cfg]是否与预期的配置名称和值匹配。
  • 此功能有助于验证crate是否正确处理不同目标平台或功能的条件编译。
  • Cargo提供了新的指令cargo::rustc-check-cfg,用于检查自定义cfg。
  • 每次声明Cargo特性时,该特性会转换为传递给rustc的配置。
  • 自定义cfg是指既不由rustc定义也不由Cargo特性定义的配置。
  • Cargo 1.80引入了cargo::rustc-check-cfg指令,确保自定义cfg被预期。
  • 该功能无法禁用,但可以通过控制lints来管理。
  • unexpected_cfgs lint仅对本地包报告,不影响依赖项。
  • RUSTFLAGS环境变量的使用与之前相同,--cfg参数不会被检查。
  • 目前没有其他方法可以在没有build.rs的情况下预期自定义cfg。
🏷️

标签

➡️

继续阅读