c++ - 为什么 -Wfatal-errors 会关闭有关错误的注释,以及如何重新打开注释?

标签 c++ compilation g++

我经常用 -Wfatal-errors 构建因为我不需要额外的 100 个无意义的错误,而编译器会在错误导致其毫无意义后英勇地尝试解析源文件的其余部分。
但是,我注意到这也会关闭有关 fatal error 本身的诊断说明。例如,使用 -Wfatal-errors我会得到,说,

main.cpp:10:2: error: invalid new-expression of abstract class type 'C'
  new C();
而如果我没有 -Wfatal-errors上,我会收到一条说明,告诉我忘记实现哪个虚拟方法:
class.hpp:15:2 note: because the following virtual functions are pure within 'C':
class.hpp:28:6   void C::f()
我能否取回这些注释,同时仍保持在单个错误后终止的行为?

最佳答案

您正在寻找 -fmax-errors=1 .这将在第一个错误后终止编译,但仍显示该错误的注释。
这是 demo比较这些标志的效果。

关于c++ - 为什么 -Wfatal-errors 会关闭有关错误的注释,以及如何重新打开注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63639034/

相关文章:

c++ - 运行选项从 Microsoft Visual C++ 2010 消失

c - 安装 r 包时出错 (Linux Mint 17.1) "error: C preprocessor "g++ -E“完整性检查失败”

c++ - 如何新建一个 string[] ?

c++ - 如何找到在静态库中定义符号的位置

scala - 在运行时从 Scala 源代码创建可序列化对象

c++ - g++:Ubuntu 发行版升级后,我的所有代码都不会链接

compiler-errors - 虽然放在mingw文件夹中,但找不到包含的库头文件

c++ - Qt QSerialPort 缓冲

C++ 类(组合和继承 - 头文件、类数组)

c# - 每个文件在 ASP.NET MVC 站点上的初始加载都很慢