gcc(或其他编译器)经常生成大量文本输出,很难看出错误在哪里或错过警告。我已经做了一些搜索,但是没有找到一个干净的简单解决方案来对编译器输出进行颜色编码(所以例如警告是黄色,错误是红色等等......)
如果你正在寻找一些非常简单的东西,这里有另一种选择:
#!/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替换为此脚本,并确保它是可执行的...
Gcc 4.9 seems to have added this feature通过-fdiagnostics-color
旗帜:
请参阅colorgcc,这是一个可以提供gcc输出的perl脚本。
ColorMake将为GCC和Make的输出着色,突出显示警告和错误。
到目前为止至少有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
(如果您因某种原因想要卸载colorgcc,只需删除这些符号链接“〜/ bin / g ++”和“〜/ bin / gcc”,以及Perl脚本:“/ usr / bin / colorgcc”就可以了)以下是g++
时g++ -Wall -std=c++11 time_until_overflow_2.cpp -o time_until_overflow_2
输出的示例:
*注意:只有当“〜/ bin”位于实际gcc
和g++
可执行文件所在文件夹之前的位置的PATH变量中时,才能在“〜/ bin”中创建这些符号链接。要确保路径中包含“〜/ 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
你可以使用GilCC这是一个Ruby工具,可以实时将GCC输出转换为颜色。现在你有两个选择:Perl脚本(colorGCC)或GilCC,如果你已经使用Ruby,你会喜欢GilCC。
GilCC独有; GilCC有警告和错误计数器,并且还显示编译时间,当您尝试改进时非常方便。因为它在Ruby中是跨平台的。它非常灵活,您可以根据需要添加更多宝石来自定义它。
下载页面的链接在这里。
尽管GCC 4.9具有-fdiagnostics-color选项以启用到终端的彩色输出,但我创建了一个名为“crror”的小工具来获得彩色编译器输出。
它也支持make
的输出。如果有人要求,我可以为其他工具添加彩色图案。