【发布时间】:2011-03-14 12:24:01
【问题描述】:
是否可以指示 GNU c++ 编译器在发现 5 个错误后停止?在文档中找不到这个。
【问题讨论】:
是否可以指示 GNU c++ 编译器在发现 5 个错误后停止?在文档中找不到这个。
【问题讨论】:
命令行选项-fmax-errors=<em>N</em> 指示编译器在N 个错误后放弃。此选项存在于 GCC 4.6 及更高版本中。
命令行选项-Wfatal-errors 指示编译器在一个错误后放弃。此选项存在于 GCC 4.0 及更高版本中。
在这两种情况下,警告都不计入限制,除非您还指定 -Werror。
【讨论】:
-Werror 的声明之外,我会给这个+1。我相信警告绝对应该被视为错误,因为大多数警告都表明代码有错误。
-Wuninitialized误报的变量的论点是:它浪费了I-cache在死但不可证明的死存储指令上;如果某些变化使警告成为真正的肯定,我们希望 valgrind 能够捕捉到它。
-fmax-errors 标志(从 arm-none-eabi-gcc 5.4.1 开始)。我正在使用选项-finstrument-functions,但由于未定义的__cyg_profile_func_enter 函数而出现数百个错误。
您可以使用 gcc 选项:
-fmax-errors=5
为此目的。
【讨论】:
我也欢迎这样的选择。目前,我使用以下解决方法来获取前五个错误:
<make> 2>&1|grep error|head -5
【讨论】:
我不得不问你为什么要这样做。有时代码中存在的错误不是第一个,甚至不是前五个错误中发现的。有时它会超出此范围,只有在您向下滚动列表时才能识别。如果您对编译时间感到困扰,更好的方法可能是分解您的代码并将其放入较小的库中。或者,如果您担心从命令行屏幕上滚动的内容,请使用“>>”运算符将消息通过管道传输到文件中。
【讨论】: