【问题标题】:How to set GCC_COLORS in gcc4.9 to emit colorizing diagnostics messages?如何在 gcc4.9 中设置 GCC_COLORS 以发出着色诊断消息?
【发布时间】: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。

【问题讨论】:

    标签: linux gcc terminal g++


    【解决方案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 服务器上。能够在全球范围内启用它可能会很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 1970-01-01
    • 1970-01-01
    • 2013-08-03
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多