是否可以强制gcc报告错误,但继续编译过去?基本上我正在尝试在.c文件中生成错误列表,但gcc始终在第一个错误处终止。我已经谷歌搜索了一段时间,这不是一个明显的解决我能说的。
答案 0 :(得分:2)
GCC在无法继续下去时终止。
如果编译器遇到错误,则必须猜测正确的代码应该是什么并尝试遵循。实际上,这意味着您总是需要修复第一个错误并重新运行编译,因为其余的都是无意义的。
确保您未启用-Wfatal-errors
。
答案 1 :(得分:0)
最新版本的GCC会尝试尽可能地跳过某些错误。
假设foo(){...
的正文包含违反常量的内容。翻译单元不会生成目标文件,但任何体面的编译器都会继续将此错误传递到bar(){...
其他错误无法恢复。如果你错过了一些花括号,就没有合理的猜测可以解决如何进行。
答案 2 :(得分:0)
-fmax-错误= N
将最大错误消息数限制为n,此时GCC将退出而不是尝试继续处理源代码。如果n为0(默认值),则生成的错误消息数没有限制。如果还指定了-Wfatal-errors,则-Wfatal-errors优先于此选项。