如何在 gcc4.9 中设置 GCC_COLORS 以发出着色诊断消息?

Posted

技术标签:

【中文标题】如何在 gcc4.9 中设置 GCC_COLORS 以发出着色诊断消息?【英文标题】:How to set GCC_COLORS in gcc4.9 to emit colorizing diagnostics messages? 【发布时间】:2014-09-27 03:02:46 【问题描述】:

gcc4.9 支持编译器警告/错误消息的着色诊断。

我们可以使用“fdiagnostics-color”选项为特定程序启用它。目前我正在使用 gcc4.9.1,并在我的 makefile 中附加了这个特定选项,如下所示:

CC = /home/mantosh/gcc-4.9.1/bin/g++ -std=c++1y -Wall -pthread
DFLAG = -g -gdwarf-2 -fdiagnostics-color=always
OUTFILE = test

$(OUTFILE): test.cpp
    $(CC) $(DFLAG) -o $(OUTFILE) test.cpp

clean: 
    rm -f *.o $(OUTFILE)

如果我编译 *.cpp 文件 a 会得到以下漂亮的彩色消息。这是 GCC 添加的非常棒的功能。

在阅读 GCC 官方链接时,似乎可以使用 GCC 环境变量“GCC_COLORS”永久启用此设置。。 p>

有人能解释一下如何设置/更改/自定义这个特定的环境变量吗?

我使用的是 Ubuntu12.04/GCC4.9.1。

【问题讨论】:

【参考方案1】:

只需将此行添加到您的 ~/.bashrc 文件中:

export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'

然后您可以使用source ~/.bashrc 重新加载它,这样您就不必注销/登录。

【讨论】:

我阅读它的方式设置GCC_COLORS 变量只会改变颜色,但设置它不会设置-fdiagnostics-color=always,这在例如一个 CI 服务器 (gcc.gnu.org/onlinedocs/gcc-4.9.2/gcc/…) GCC_COLORS设置为非空字符串意味着-fdiagnostic-color=auto,这在stderr在终端上时有效,否则您必须将-fdiagnostic-color传递给编译器;我写的颜色字符串是 gcc 使用的默认字符串 @gengisdave 这有时是不可能的,尤其是在启动像rpmbuild 这样的构建工具会重置一切的 CI 服务器上。能够在全球范围内启用它可能会很好。

以上是关于如何在 gcc4.9 中设置 GCC_COLORS 以发出着色诊断消息?的主要内容,如果未能解决你的问题,请参考以下文章

使用自定义gcc位置构建包

使用自定义 gcc 位置构建包

Mac Eclipse GCC 4.9.0“启动配置中指定的程序文件不存在”

如何设置gcc5.0与gcc4.9的优先级

我需要在 ubuntu 20.04 上安装 gcc4.9 | matlab 墨西哥

如何在 Netbeans 中设置环境变量?