gpt4 book ai didi

c++ - gcc -fdiagnostics-colour 是否在 Windows 上运行?

转载 作者:可可西里 更新时间:2023-11-01 14:14:30 26 4
gpt4 key购买 nike

我使用的是 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)

最佳答案

在 gcc 6.3.0 的 diagnostic-color.c 的源代码中出现:

#if (defined _WIN32)
bool
colorize_init (diagnostic_color_rule_t)
{
return false;
}
#else

后面才是真正的逻辑。要解决此问题,如果您自己构建 gcc,请将第一行更改为 #if 0。这对我有用,使用 MSYS2 作为 shell 在 mingw-w64 5.2.0(32 位)下构建 gcc-6.3.0。

如果您使用的是预打包的 gcc 版本,我猜您被卡住了。


A gcc bug has been filed回应是(转述)“当前的 gcc 开发人员中没有人使用 Windows,要解决这个问题,使用 Windows 的人需要完成补丁提交过程”。

在错误报告线程中,有一个链接的第三方补丁试图使用 Win32 系统调用来检测 shell 功能来实现 auto 行为。

使用我上面的解决方案,“自动”行为默认为“关闭”,您必须使用“始终”开关启用它(这对我来说非常好,但我想对其他人来说可能不太好)。

关于c++ - gcc -fdiagnostics-colour 是否在 Windows 上运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36170739/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com