gcc(或其他编译器)通常会生成大量文本输出,并且很难看到错误在哪里或错过警告。我已经进行了一些搜索,但没有找到一个干净简单的解决方案来对编译器输出进行颜色编码(例如警告是黄色的,错误是红色的,等等......)
8 回答
Gcc 4.9 似乎已通过-fdiagnostics-color
标志添加了此功能:
如果您正在寻找非常简单的东西,这是一个替代方案:
#!/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 别名到此脚本并确保它是可执行的...
请参阅colorgcc,这是一个 perl 脚本,它可以为 gcc 输出提供色彩。
如何安装和使用 colorgcc 为你的 gcc 编译器输出着色:
到目前为止,这里至少有 3 个答案提到colorgcc,但没有一个解释如何安装它!(这并不明显)。所以,这里是如何在 Ubuntu 中安装最新版本!
- 转到此处并单击“克隆或下载”->“下载 Zip”。我把它保存到“~/Downloads/Install_Files”
- 在文件浏览器中导航到它并右键单击它并转到“在此处提取”。我现在有一个名为“~/Downloads/Install_Files/colorgcc-master”的目录。
- 将“colorgcc.pl”脚本复制到“/usr/bin/colorgcc”以“安装”它(确保根据上面提取的位置使用正确的目录):
sudo cp ~/Downloads/Install_Files/colorgcc-master/colorgcc.pl /usr/bin/colorgcc
- 使其可执行:
sudo chmod +x /usr/bin/colorgcc
- 如果“~/bin”目录尚不存在,则创建它:
mkdir ~/bin
- *创建指向“/usr/bin/colorgcc”的符号链接,这样每当您调用
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”中创建这些符号链接仅在“~/bin”位于实际和可执行文件所在文件夹之前的路径变量中时才有效。为确保您的路径中有“~/bin”,您可以使用以下命令查看 PATH 变量内容:。如果您在路径的开头没有看到“/home/YOUR_USERNAME/bin”,请添加:。gcc
g++
echo $PATH
export PATH=~/bin:$PATH
参考:
请参阅此处了解更多信息。以及我最初学习大部分这些步骤的地方:https ://imranfanaswala.wordpress.com/2009/02/02/setting-up-colorgcc/ 。谢谢伊姆兰·法纳斯瓦拉!
〜GS _
您可以使用GilCC,它是一个 Ruby 工具,可以将 GCC 输出实时转换为颜色。现在您有两个选择:Perl 脚本 (colorGCC) 或 GilCC,如果您已经使用 Ruby,您会喜欢 GilCC。
GilCC 独有;GilCC 具有警告和错误计数器,还显示编译时间,当您尝试改进时非常方便。因为它在 Ruby 中,所以它是跨平台的。它很灵活,你可以添加更多的宝石来定制你想要的任何东西。
下载页面的链接在这里。
尽管 GCC 4.9 具有 -fdiagnostics-color 选项来启用终端的彩色输出,但我创建了一个名为“ crror ”的小工具来获得彩色编译器输出。
它也支持输出make
。如果有人需要,我可以为其他工具添加着色模式。