如何在 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 以发出着色诊断消息?的主要内容,如果未能解决你的问题,请参考以下文章
Mac Eclipse GCC 4.9.0“启动配置中指定的程序文件不存在”