是否可以“告诉”编译器,如果警告总数(在编译 C++ 程序时)超过 10 个,则停止进一步编译,并发出错误? 或者是否可以破解像 clang 这样的编译器来提供此功能。
GCC 有两个选项可以一起实现这一点,来自 gnu 在线文档:
-错误
将所有警告变为错误。-fmax-错误=n 将错误消息的最大数量限制为 n,此时 GCC 会退出而不是尝试继续处理源代码 代码。
这会使带有任何警告的构建失败,这些选项只是定义何时停止解析。
我还没有在 gcc 或 clang 中看到过这种功能。您当然可以尝试将其修补到其中任何一个中,两者都是开源的。还有
-Werror
(两个编译器都接受),它只是将警告视为错误。
如何使用
-Werror
将警告变为错误并使用 -fmax-errors=n
设置限制。
(另外,也许让你的代码完全没有警告将是一件好事)。