【发布时间】:2016-07-10 07:19:37
【问题描述】:
我使用的是 Windows 7,在 mintty (Cygwin) 和 Windows 命令提示符终端中,MinGW GCC 错误消息没有任何颜色。
$ printenv GCC_COLORS
error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01
$ gcc -c -fdiagnostics-color=always file.cpp -o file.o
对于两个终端,当我使用 git 命令时,我可以看到颜色,所以终端本身很好。我可以在没有 GCC_COLORS 环境变量的情况下在 Ubuntu Linux (GCC 4.9) 中使用相同的 GCC 命令,并且着色确实有效。
我的 MinGW GCC 5.2 来自 https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/dongsheng-daily/,可能是 gcc-5-win32(稳定版)。
gcc -v 给出:
Target: i686-w64-mingw32
Configured with: /home/drangon/work/mingw-w64-dgn_32/source/gcc-5.2.0/configure --host=i686-w64-mingw32 --target=i686-w64-mingw32 --disable-nls --enable-languages=c,c++,objc,obj-c++ --with-gmp=/home/drangon/work/mingw-w64-dgn_32/build/for_target --with-mpfr=/home/drangon/work/mingw-w64-dgn_32/build/for_target --with-mpc=/home/drangon/work/mingw-w64-dgn_32/build/for_target --with-isl=/home/drangon/work/mingw-w64-dgn_32/build/for_target --enable-twoprocess --disable-libstdcxx-pch --disable-win32-registry --prefix=/home/drangon/work/mingw-w64-dgn_32/target --with-sysroot=/home/drangon/work/mingw-w64-dgn_32/target
Thread model: win32
gcc version 5.2.0 (GCC)
我看到这张关于这个问题的票已关闭,因为它正在为某人工作。 https://sourceforge.net/p/mingw-w64/feature-requests/66/
如何使错误着色起作用?
(我确实尝试了 gcc-5-win64,它也有同样的问题......而且 clang -fcolor-diagnostics 也失败了,Clang 3.7.1 来自:http://llvm.org/releases/download.html#3.7.1)
【问题讨论】:
-
这对我有用 Cygwin
mingw64-x86_64-gcc-core包 4.9.2 -
colorgcc 怎么样? github.com/colorgcc/colorgcc 这是一个 perl 脚本,用于对 gcc 的输出进行着色,如果配置正确,它将起作用!屏幕截图:i.imgur.com/V2U2L4a.png 我使用 [gcc] 作为 [colorgcc] 的链接(cmd 中的 mklink),以使其与 [gcc] 命令一起使用。使用 TDM-GCC 5.1 和 Perl 5.22。
-
我记得不久前听说过 colorgcc,但从未尝试过。我可能会这样做。不过,让官方的内置着色工作会很好(这也更令人赏心悦目)。与 Clang 着色相同。
-
我发现使用 gcc 6.3.0 在 MSYS2/gcc 下构建 gcc 会产生一个可以使用 diagnostics-color 的版本,但在 mingw-w64 下构建则不行
标签: c++ windows gcc compiler-errors clang