gcc(或其他编译器)经常生成大量文本输出,很难看出错误在哪里或错过警告。我已经做了一些搜索,但是没有找到一个干净的简单解决方案来对编译器输出进行颜色编码(例如警告是黄色,错误是红色等等)
答案 0 :(得分:25)
这是另一种选择:
#!/bin/bash -e
make ${@} 2>&1 | perl -wln -M'Term::ANSIColor' -e '
m/Building|gcc|g++|\bCC\b|\bcc\b/ and print "\e[1;32m", "$_", "\e[0m"
or
m/Error/i and print "\e[1;91m", "$_", "\e[0m"
or
m/Warning/i and print "\e[1;93m", "$_", "\e[0m"
or
m/Linking|\.a\b/ and print "\e[1;36m", "$_", "\e[0m"
or
print; '
只需将您的make命名为此脚本,并确保它是可执行的......
答案 1 :(得分:25)
Gcc 4.9 seems to have added this feature通过-fdiagnostics-color
标志:
答案 2 :(得分:15)
Debian和Ubuntu为此提供了colorgcc
包。
我通常使用gcc
运行make
(和emacs
)至M-x compile
,然后将消息着色。
GCC 4.9有一个原生的着色设施,GCC 6 - 2016年4月底发布 - (也可能是GCC 5)默认启用它(当stdout是终端时)。< / p>
答案 3 :(得分:11)
请参阅colorgcc,这是一个可以提供gcc输出的perl脚本。
答案 4 :(得分:11)
答案 5 :(得分:3)
ColorMake将为GCC和Make的输出着色,突出显示警告和错误。
答案 6 :(得分:1)
到目前为止至少有3个答案提到colorgcc,但是他们没有解释如何安装它! (而且这并不明显)。那么,这是如何在Ubuntu中安装最新版本的!
sudo cp ~/Downloads/Install_Files/colorgcc-master/colorgcc.pl /usr/bin/colorgcc
sudo chmod +x /usr/bin/colorgcc
mkdir ~/bin
gcc
或g++
,它都会自动调用colorgcc
:
ln -s /usr/bin/colorgcc ~/bin/g++
ln -s /usr/bin/colorgcc ~/bin/gcc
现在,当我致电g++
时,以下是g++ -Wall -std=c++11 time_until_overflow_2.cpp -o time_until_overflow_2
示例输出:
*注意:只有在“〜/ bin”位于之前的位置变量中的“〜/ bin”实际gcc
的文件夹中才能使用“〜/ bin”中的这些符号链接。和g++
可执行文件位于。要确保路径中包含“〜/ bin”,可以使用以下命令查看PATH变量内容:echo $PATH
。如果您在路径的开头没有看到“/ home / YOUR_USERNAME / bin”,请添加:export PATH=~/bin:$PATH
。
参考文献:
有关详情,请参阅此处。以及我最初学习大部分步骤的地方:https://imranfanaswala.wordpress.com/2009/02/02/setting-up-colorgcc/。谢谢Imran Fanaswala!
〜GS
答案 7 :(得分:0)
你可以使用GilCC这是一个Ruby工具,可以实时将GCC输出转换为颜色。现在你有两个选择:Perl脚本(colorGCC)或GilCC,如果你已经使用Ruby,你会喜欢GilCC。
GilCC独有; GilCC有警告和错误计数器,并且还显示编译时间,当您尝试改进时非常方便。因为它在Ruby中是跨平台的。它非常灵活,您可以添加更多宝石来自定义它。
下载页面的链接就在这里。
答案 8 :(得分:0)
虽然GCC 4.9有-fdiagnostics-color选项可以为终端启用彩色输出,但我创建了一个名为&#39; crror&#39;的小工具。获得彩色编译器输出。
它也支持make
的输出。如果有人需要,我可以为其他工具添加彩色图案。