有没有一种简单的方法来COLOR-CODE编译器输出?

时间:2013-02-17 15:56:29

标签: gcc g++ ansi-colors

gcc(或其他编译器)经常生成大量文本输出,很难看出错误在哪里或错过警告。我已经做了一些搜索,但是没有找到一个干净的简单解决方案来对编译器输出进行颜色编码(例如警告是黄色,错误是红色等等)

9 个答案:

答案 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)

好的,我只是留下关于我自己的(基于python的)工具的通知:)

它被称为Pluggable Output Processor,不仅用于着色一个特定程序的输出。以下是GCC输出示例:

Pluggable Output Processor Before 后: Pluggable Output Processor Before

答案 5 :(得分:3)

ColorMake将为GCC和Make的输出着色,突出显示警告和错误。

Screenshot

答案 6 :(得分:1)

如何安装和使用colorgcc来着色gcc编译器输出:

到目前为止至少有3个答案提到colorgcc,但是他们没有解释如何安装它! (而且这并不明显)。那么,这是如何在Ubuntu中安装最新版本的!

  1. 转到here并点击“克隆或下载” - &gt; “下载邮编”。我把它保存到“〜/ Downloads / Install_Files”
  2. 在文件浏览器中导航到它,然后右键单击它并转到“Extract Here”。我现在有一个名为“〜/ Downloads / Install_Files / colorgcc-master”的目录。
  3. 将“colorgcc.pl”脚本复制到“/ usr / bin / colorgcc”以“安装”它(确保根据您在上面的位置使用正确的目录):sudo cp ~/Downloads/Install_Files/colorgcc-master/colorgcc.pl /usr/bin/colorgcc
  4. 使其可执行:sudo chmod +x /usr/bin/colorgcc
  5. 制作“〜/ bin”目录(如果它尚不存在):mkdir ~/bin
  6. *制作指向“/ usr / bin / colorgcc”的符号链接,这样无论何时拨打gccg++,它都会自动调用colorgcc
    • ln -s /usr/bin/colorgcc ~/bin/g++
    • ln -s /usr/bin/colorgcc ~/bin/gcc
    • (如果您因某些原因想要卸载colorgcc,只需删除这些符号链接“〜/ bin / g ++”和“〜/ bin / gcc”,以及Perl脚本:“/ usr / bin / colorgcc”和你一起'完成了)
  7. 完成!
  8. 现在,当我致电g++时,以下是g++ -Wall -std=c++11 time_until_overflow_2.cpp -o time_until_overflow_2示例输出:

    enter image description here

    *注意:只有在“〜/ 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中是跨平台的。它非常灵活,您可以添加更多宝石来自定义它。

下载页面的链接就在这里。

https://github.com/gilmotta/GilCC

答案 8 :(得分:0)

虽然GCC 4.9有-fdiagnostics-color选项可以为终端启用彩色输出,但我创建了一个名为&#39; crror&#39;的小工具。获得彩色编译器输出。

它也支持make的输出。如果有人需要,我可以为其他工具添加彩色图案。