如何让gcc跳过错误,但仍然输出它们。

时间:2011-07-28 14:24:49

标签: linux gcc makefile compiler-errors

是否可以强制gcc报告错误,但继续编译过去?基本上我正在尝试在.c文件中生成错误列表,但gcc始终在第一个错误处终止。我已经谷歌搜索了一段时间,这不是一个明显的解决我能说的。

3 个答案:

答案 0 :(得分:2)

GCC在无法继续下去时终止。

如果编译器遇到错误,则必须猜测正确的代码应该是什么并尝试遵循。实际上,这意味着您总是需要修复第一个错误并重新运行编译,因为其余的都是无意义的。

确保您未启用-Wfatal-errors

答案 1 :(得分:0)

最新版本的GCC会尝试尽可能地跳过某些错误。

假设foo(){...的正文包含违反常量的内容。翻译单元不会生成目标文件,但任何体面的编译器都会继续将此错误传递到bar(){...

其他错误无法恢复。如果你错过了一些花括号,就没有合理的猜测可以解决如何进行。

答案 2 :(得分:0)

来自gcc online doc

  

-fmax-错误= N

     

将最大错误消息数限制为n,此时GCC将退出而不是尝试继续处理源代码。如果n为0(默认值),则生成的错误消息数没有限制。如果还指定了-Wfatal-errors,则-Wfatal-errors优先于此选项。