39

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

4

8 回答 8

30

Gcc 4.9 似乎已通过-fdiagnostics-color标志添加了此功能:

于 2014-04-13T07:27:58.917 回答
27

如果您正在寻找非常简单的东西,这是一个替代方案:

#!/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 别名到此脚本并确保它是可执行的...

于 2013-02-17T16:02:03.703 回答
15

Debian 和 Ubuntucolorgcc为此提供了软件包。

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

附加物

GCC 4.9具有本机着色功能,而GCC 6(2016 年 4 月末发布)(可能还有GCC 5)默认启用它(当 stdout 是终端时)。

于 2013-02-17T15:58:57.483 回答
12

好的,我也会留下一个关于我自己的(基于python的)工具的通知:)

它被称为可插拔输出处理器,不仅用于对特定程序的输出进行着色。这是之前的示例 GCC 输出:

可插拔输出处理器之前 后: 可插拔输出处理器之前

于 2014-06-14T23:37:41.413 回答
11

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

于 2013-02-17T15:59:29.767 回答
1

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

到目前为止,这里至少有 3 个答案提到colorgcc,但没有一个解释如何安装它!(这并不明显)。所以,这里是如何在 Ubuntu 中安装最新版本!

  1. 转到此处并单击“克隆或下载”->“下载 Zip”。我把它保存到“~/Downloads/Install_Files”
  2. 在文件浏览器中导航到它并右键单击它并转到“在此处提取”。我现在有一个名为“~/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. 完毕!

g++这是我打电话时的示例输出g++ -Wall -std=c++11 time_until_overflow_2.cpp -o time_until_overflow_2

在此处输入图像描述

*注意:在“~/bin”中创建这些符号链接仅在“~/bin”位于实际和可执行文件所在文件夹之前的路径变量中时才有效。为确保您的路径中有“~/bin”,您可以使用以下命令查看 PATH 变量内容:。如果您在路径的开头没有看到“/home/YOUR_USERNAME/bin”,请添加:。gccg++echo $PATHexport PATH=~/bin:$PATH

参考:

请参阅此处了解更多信息。以及我最初学习大部分这些步骤的地方:https ://imranfanaswala.wordpress.com/2009/02/02/setting-up-colorgcc/ 。谢谢伊姆兰·法纳斯瓦拉!

〜GS _

于 2018-03-02T06:45:05.673 回答
0

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

GilCC 独有;GilCC 具有警告和错误计数器,还显示编译时间,当您尝试改进时非常方便。因为它在 Ruby 中,所以它是跨平台的。它很灵活,你可以添加更多的宝石来定制你想要的任何东西。

下载页面的链接在这里。

https://github.com/gilmotta/GilCC

于 2014-01-20T15:03:03.167 回答
0

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

它也支持输出make。如果有人需要,我可以为其他工具添加着色模式。

于 2014-05-22T02:54:03.013 回答