【问题标题】:How can I only show warnings if there are no errors?如果没有错误,我怎样才能只显示警告?
【发布时间】:2019-04-20 16:04:19
【问题描述】:

通常在开发过程中,我有一堆未使用的导入和变量。我喜欢修复那些之后我有正确工作的代码。这些生成的警告使我滚动查看cargo build 输出以在所有警告中查找错误。

是否可以仅在编译成功时显示警告?

我不想完全忽略警告,因为我确实想在提交代码之前解决它们。

【问题讨论】:

    标签: compiler-errors rust compiler-warnings rust-cargo


    【解决方案1】:

    您可以使用-Awarnings 标志在编译中抑制警告。如果你使用 Cargo,你可以添加:

    cargo rustc -- -Awarnings
    

    这将在禁用警告的情况下编译您的 crate,因此只会显示错误。编译成功后,可以切换回:

    cargo build
    

    您的 crate 将再次编译(因为标志已更改,目标不再是最新的),您将收到详细的警告。

    您可以尝试通过运行使它们自动化:

    cargo rustc -- -Awarnings && cargo build
    

    这样做的缺点是如果没有错误会编译两次 crate,这可能需要一些额外的时间。

    如果你想编译所有依赖项而不出现警告,你可以运行:

    RUSTFLAGS=-Awarnings cargo build
    

    但是,双重编译问题更相关。


    作为旁注,我认为某些 IDE(VSCode?)能够做到这一点:对编译器消息进行排序并过滤掉您不感兴趣的消息。

    【讨论】:

    • 你可以使用cargo check -- -Awarnings?我没试过,但它可以为您节省一些时间。
    • @hellow:我试过了,但不幸的是cargo check 无法使用rustc 标志……至少我不知道怎么做。不过,您可以将它与 RUSTFLAGS 技巧一起使用。
    【解决方案2】:

    您正在寻找:

    cargo install cargo-limit; cargo lcheck
    

    更多信息请参见https://github.com/alopatindev/cargo-limit/blob/master/README.md

    【讨论】:

    • 请详细描述问题。
    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2021-11-05
    • 2011-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多