【问题标题】:Can I exclude some specific warnings from "treat warnings as errors" without disabling them?我可以从“将警告视为错误”中排除某些特定警告而不禁用它们吗?
【发布时间】:2012-03-05 12:48:55
【问题描述】:

在我的 Visual C++ 代码中,我想要 /WX - “将警告视为错误”。这使我能够处理每个警告,包括 C4996 - “X 已被宣布弃用”,我不想解决 - 我现在不想更改代码,也不想禁用 C4996 以便它保留在输出中。所以理想情况下,我想要这样的东西:

#pragma warning( ExcludeFromWX:4996)

因此,当使用/WX 时,除此之外的所有警告都被视为错误,并且仅显示此警告并继续编译。

有可能得到这样的行为吗?

【问题讨论】:

    标签: c++ visual-c++ compiler-construction compiler-warnings


    【解决方案1】:

    您可以使用以下编译指示重置指定的警告。我没有测试它,你也没有提到尝试这个:

    更新 更改警告级别应该会成功

    #pragma warning( 4 : 4996 )
    

    这不起作用:

    #pragma warning( default : 4996 )
    

    【讨论】:

    • 这不会影响/WX - 这会将警告级别重置为默认级别并启用警告。
    • 啊,我刚刚通过使用#pragma warning(4 : ...) 设置警告级别成功了,我在上面更新了我的答案
    • 我不明白。这将如何帮助防止/WX 停止编译?
    • 即使警告被视为错误,它们也仅在达到警告级别时才算作警告。如果您还显示级别为 4 的警告,这当然行不通。然而,这并不常见。
    • 不,这不是我想要的。我不想隐藏 C4996 - 我希望它显示但不停止编译。
    猜你喜欢
    • 2011-06-12
    • 2017-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多