答案1
您的终端配色方案与 GCC 的默认颜色冲突。也就是说,黑底黑字是不可见的。这在手动的:
颜色由环境变量定义
GCC_COLORS
。它的值是以冒号分隔的功能列表和选择图形呈现 (SGR) 子字符串。 SGR 命令由终端或终端仿真器解释。 (有关允许的值及其作为字符属性的含义,请参阅文本终端文档中的部分。)这些子字符串值是十进制表示的整数,可以用分号连接。要连接的常见值包括1
用于粗体、4
用于下划线、5
用于闪烁、7
用于反色、39
用于默认前景色、30
用于37
前景色、90
用于97
16 色模式前景色、38;5;0
用于38;5;255
88 色和 256 色模式前景色、49
用于默认背景颜色,40
to47
表示背景颜色,100
to107
表示 16 色模式背景颜色,48;5;0
to48;5;255
表示 88 色和 256 色模式背景颜色。默认的 GCC_COLORS 是
error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01
粗体01;31
红色、01;35
粗体洋红色、01;36
粗体青色、01;32
粗体绿色和01
粗体。设置GCC_COLORS
为空字符串会禁用颜色。支持的功能如下。
您将能够修改环境变量GCC_COLORS
以更改quote
为不同的颜色,例如01;34
.有关 ANSI 转义码的维基百科页面有更多信息。
答案2
您的 $GCC_COLORS 可能设置为浅色背景而不是深色背景。
检查-fno-diagnostics-colors
您的 Makefile 或您使用的任何构建系统。请记住,构建脚本可能会设置该变量。
您也可以尝试在没有倒车影像的情况下运行,看看是否有效。
GCC 手册有关于 GCC_COLORS 环境变量的文档。