如何将防锈标志传递给货物?

Mai*_*ein 11 rust rust-cargo

我正在尝试禁用死代码警告.我尝试了以下内容

cargo build -- -A dead_code
Run Code Online (Sandbox Code Playgroud)

➜rla git :(主)✗货物构建 - -A dead_code错误:参数无效.

所以我想知道如何将rustc参数传递给货物?

小智 22

您可以通过几种不同的方式通过Cargo传递旗帜:

  • cargo rustc,它只影响你的箱子而不是它的依赖.
  • RUSTFLAGS环境变量,它会影响依赖为好.
  • 一些标志有一个适当的货物选择,例如,-C lto并且-C panic=abort可以在中指定Cargo.toml的文件.
  • .cargo/config使用其中一个rustflags=键添加标志.

但是,在配置lints的特定情况下,您不需要使用编译器标志; 您还可以使用属性直接在源代码中启用和禁用lints.事实上,这可能是一个更好的选择,因为它更强大,更有针对性,并且不需要您更改构建系统设置:

#![deny(some_lint)] // deny lint in this module and its children

#[allow(another_lint)] // allow lint in this function
fn foo() {
    ...
}
Run Code Online (Sandbox Code Playgroud)

也可以看看:

  • 例如,在 bash 中, `RUSTFLAGS="-C opt-level=3 -C debuginfo=0" Cargo build --release` 将构建一个优化的(为了速度)发布版本,去掉调试符号(为了大小)。 (3认同)