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

问题描述 投票:36回答:9

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

gcc g++ ansi-colors
9个回答
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替换为此脚本,并确保它是可执行的...


25
投票

Gcc 4.9 seems to have added this feature通过-fdiagnostics-color旗帜:


15
投票

Debian和Ubuntu为此提供了colorgcc包。

而且我通常用gcc通过make运行emacs(和M-x compile)然后消息被着色。

addenda

GCC 4.9有一个原生的着色设施和GCC 6 - 2016年4月底发布 - (也可能是GCC 5)默认启用它(当stdout是终端时)。


11
投票

请参阅colorgcc,这是一个可以提供gcc输出的perl脚本。


11
投票

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

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

后:


3
投票

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


1
投票

How to install and use colorgcc to colorize your gcc compiler output:

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

  1. here并点击“克隆或下载” - >“下载邮编”。我把它保存到“〜/ 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++,它都会自动调用colorgccln -s /usr/bin/colorgcc ~/bin/g++ ln -s /usr/bin/colorgcc ~/bin/gcc (如果您因某种原因想要卸载colorgcc,只需删除这些符号链接“〜/ bin / g ++”和“〜/ bin / gcc”,以及Perl脚本:“/ usr / bin / colorgcc”就可以了)
  7. 完成!

以下是g++g++ -Wall -std=c++11 time_until_overflow_2.cpp -o time_until_overflow_2输出的示例:

enter image description here

*注意:只有当“〜/ bin”位于实际gccg++可执行文件所在文件夹之前的位置的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


0
投票

你可以使用GilCC这是一个Ruby工具,可以实时将GCC输出转换为颜色。现在你有两个选择:Perl脚本(colorGCC)或GilCC,如果你已经使用Ruby,你会喜欢GilCC。

GilCC独有; GilCC有警告和错误计数器,并且还显示编译时间,当您尝试改进时非常方便。因为它在Ruby中是跨平台的。它非常灵活,您可以根据需要添加更多宝石来自定义它。

下载页面的链接在这里。

https://github.com/gilmotta/GilCC


0
投票

尽管GCC 4.9具有-fdiagnostics-color选项以启用到终端的彩色输出,但我创建了一个名为“crror”的小工具来获得彩色编译器输出。

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

© www.soinside.com 2019 - 2024. All rights reserved.