【发布时间】:2016-10-28 15:54:36
【问题描述】:
我正在尝试禁用死代码警告。我尝试了以下
cargo build -- -A dead_code
➜ rla git:(master) ✗ cargo build -- -A dead_code 错误:参数无效。
所以我想知道如何将 rustc 参数传递给 cargo?
【问题讨论】:
标签: rust rust-cargo
我正在尝试禁用死代码警告。我尝试了以下
cargo build -- -A dead_code
➜ rla git:(master) ✗ cargo build -- -A dead_code 错误:参数无效。
所以我想知道如何将 rustc 参数传递给 cargo?
【问题讨论】:
标签: rust rust-cargo
您可以通过几种不同的方式通过 Cargo 传递标志:
cargo rustc,它只会影响你的 crate 而不是它的依赖项。RUSTFLAGS 环境变量,它也会影响依赖关系。-C lto 和 -C panic=abort 可以在 Cargo.toml 文件中指定。rustflags= 键之一在.cargo/config 中添加标志。但是,在您配置 lints 的特定情况下,您不需要使用编译器标志;您还可以使用属性直接在源代码中启用和禁用 lints。这实际上可能是一个更好的选择,因为它更健壮、更有针对性,并且不需要您更改构建系统设置:
#![deny(some_lint)] // deny lint in this module and its children
#[allow(another_lint)] // allow lint in this function
fn foo() {
...
}
另见:
【讨论】:
RUSTFLAGS="-C opt-level=3 -C debuginfo=0" cargo build --release 将构建一个优化的(为了速度)发布版本,去掉调试符号(为了大小)。
a Display implementation returned an error unexpectedly C:\\Users\\...
您可以通过修改 config.toml 文件来禁用死代码警告。 如果文件不存在,请在以下位置创建一个。
Windows: %USERPROFILE%\.cargo\config.toml
Unix: $HOME/.cargo/config.toml
然后在下面添加一行
[target.'cfg(target_family = "windows")']
rustflags = ["-Adead_code"]
如果您不想看到任何未使用的变量警告,请添加以下行
[target.'cfg(target_family = "windows")']
rustflags = ["-Aunused"]
不要忘记在生产之前禁用这些 :)
【讨论】: