Dav*_*hop 40
截至4.9的海湾合作委员会对产出col进行了着色
将以下内容附加到bashrc/zshrc/whatever.
export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
Run Code Online (Sandbox Code Playgroud)
Dar*_*uuk 36
如果您可以自由切换编译器,请尝试使用clang ++.它的错误输出大部分时间非常清晰,有时它甚至会告诉你如何解决你的错误.你可以在这里找到gcc vs clang错误输出的比较:http://clang.llvm.org/diagnostics.html.
否则,如Matteo Italia所述,请关注STLFilt.
对于色彩方面,Edwin Buck的解决方案(colorgcc)非常好.您可以为它创建名为gcc,g ++等的符号链接,以便在运行编译器命令时始终使用它(如果您正确设置了colorgcc脚本中的路径).从Makefile编译一些大型项目时,我发现这特别方便.有助于检测出现错误的地方(特别是在进行并行编译时make -j).
Pau*_* II 10
我通过使用sed使用此脚本为输出着色来改进它:
#!/bin/bash
while read x ; do echo $x ; done \
| sed -e "s/.*error:.*/\x1b[1;36m&\x1b[0m/" \
-e "s/.*warning:.*/\x1b[1;36m&\x1b[0m/" \
-e "s/^\(.*\)\(required from\)/\x1b[1;36m\1\x1b[0mnote: \2/" \
-e "s/^\(.*\)\(In instantiation of\)/\x1b[1;36m\1\x1b[0mnote: \2/" \
-e "s/^\(.*\)\(In member\)/\x1b[1;36m\1\x1b[0mnote: \2/" \
| sed -e "s/error:/\x1b[1;31m&\x1b[1;36m/" \
-e "s/warning:/\x1b[1;35m&\x1b[1;36m/" \
-e "s/note:/\x1b[1;30m&\x1b[0m/"
Run Code Online (Sandbox Code Playgroud)
如果您使用gcc 4.9或更高版本,则有几个内置选项:
有关更多选项和确切用法,请参阅以下文档:https:
//gcc.gnu.org/onlinedocs/gcc/Diagnostic-Message-Formatting-Options.html