使用GCC编译时错误被青色note消息掩盖,如何将关键错误移至输出末尾
GCC编译错误被note信息覆盖的解决方案
- 限制编译器输出内容(最推荐)
- 编译命令添加
-fmax-errors=3参数,编译器遇到3个错误后就会停止运行,不会后续输出数百条无关note,可自行调整数字大小 - 编译命令添加
-fdiagnostics-format=brief参数,会简化note、警告的输出格式,仅保留核心错误的完整内容 - 不需要note提示时可添加
-fno-diagnostics-show-notes参数,直接关闭所有note输出,终端只会打印错误和警告信息
- 编译命令添加
- 重定向输出到文件筛选
- 执行编译时把所有输出同时写入日志文件,避免终端滚动上限丢失内容,示例命令(替换为你自己的编译命令即可):
g++ your_code.cpp -o target 2>&1 | tee build.log - 编译完成后可直接过滤所有note,仅查看错误:
grep -v "note:" build.log,也可以直接打开日志文件搜索error:关键词定位问题
- 执行编译时把所有输出同时写入日志文件,避免终端滚动上限丢失内容,示例命令(替换为你自己的编译命令即可):
- 反转输出顺序让错误沉底
- 通过管道把编译输出行序反转,原本出现在最开头的致命错误就会显示在终端最后一行,示例命令:
g++ your_code.cpp -o target 2>&1 | tac
注意:该方法会把单条错误的内部行序也反转,仅适合快速定位首个触发的致命错误
- 通过管道把编译输出行序反转,原本出现在最开头的致命错误就会显示在终端最后一行,示例命令:
内容的提问来源于stack exchange,提问作者Golden
相关产品推荐
相关产品推荐

