【发布时间】:2019-04-20 16:04:19
【问题描述】:
通常在开发过程中,我有一堆未使用的导入和变量。我喜欢修复那些之后我有正确工作的代码。这些生成的警告使我滚动查看cargo build 输出以在所有警告中查找错误。
是否可以仅在编译成功时显示警告?
我不想完全忽略警告,因为我确实想在提交代码之前解决它们。
【问题讨论】:
标签: compiler-errors rust compiler-warnings rust-cargo
通常在开发过程中,我有一堆未使用的导入和变量。我喜欢修复那些之后我有正确工作的代码。这些生成的警告使我滚动查看cargo build 输出以在所有警告中查找错误。
是否可以仅在编译成功时显示警告?
我不想完全忽略警告,因为我确实想在提交代码之前解决它们。
【问题讨论】:
标签: compiler-errors rust compiler-warnings rust-cargo
您可以使用-Awarnings 标志在编译中抑制警告。如果你使用 Cargo,你可以添加:
cargo rustc -- -Awarnings
这将在禁用警告的情况下编译您的 crate,因此只会显示错误。编译成功后,可以切换回:
cargo build
您的 crate 将再次编译(因为标志已更改,目标不再是最新的),您将收到详细的警告。
您可以尝试通过运行使它们自动化:
cargo rustc -- -Awarnings && cargo build
这样做的缺点是如果没有错误会编译两次 crate,这可能需要一些额外的时间。
如果你想编译所有依赖项而不出现警告,你可以运行:
RUSTFLAGS=-Awarnings cargo build
但是,双重编译问题更相关。
作为旁注,我认为某些 IDE(VSCode?)能够做到这一点:对编译器消息进行排序并过滤掉您不感兴趣的消息。
【讨论】:
cargo check -- -Awarnings?我没试过,但它可以为您节省一些时间。
cargo check 无法使用rustc 标志……至少我不知道怎么做。不过,您可以将它与 RUSTFLAGS 技巧一起使用。
您正在寻找:
cargo install cargo-limit; cargo lcheck
更多信息请参见https://github.com/alopatindev/cargo-limit/blob/master/README.md。
【讨论】: