2016-03-23 30 views
4

Windows 7'yi kullanıyorum ve hem miny (Cygwin) hem de Windows Komut İstemi terminallerinde, MinGW GCC hata iletileri için herhangi bir renk almıyorum.Windows'ta gcc -fdiagnostics-color çalışıyor mu?

$ 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 

Her iki terminal için git komutlarını kullandığımda rengi görebiliyorum, böylece terminaller kendileri iyi. GCC_COLORS ortam değişkeni olmadan Ubuntu Linux'ta (GCC 4.9) aynı GCC komutunu kullanabilirim ve renklendirme işe yarıyor.

MinGW GCC 5.2 ürünümüzü, muhtemelen gcc-5-win32 (kararlı) olan https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/dongsheng-daily/'dan temin ettim.

gcc -v verir: Ben birisi için çalışıyordu çünkü bu çok konu kapatıldı ilgili bu bilet gördü

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/

Hata renklendirme çalışmasını nasıl alabilirim?

(ı ... Aynı sorunu var gcc-5-Win64, çalıştım ve ayrıca clang -fcolor-diagnostics kaynaklı Clang 3.7.1 ile başarısız: http://llvm.org/releases/download.html#3.7.1) gcc 6.3 için kaynak kodunda

+0

Bu benim için Cygwin 'mingw64-x86_64-gcc-core' paketinde çalışıyor 4.9.2 –

+0

Colorgcc nedir? https://github.com/colorgcc/colorgcc/ Eğer doğru bir şekilde yapılandırırsanız, gcc çıktılarını renklendiren bir perl betiği! Ekran Görüntüsü: http://i.imgur.com/V2U2L4a.png [gcc] komutunu [gcc] komutu ile çalışmasını sağlamak için [gcc] 'yi [cmg olarak mklink] [colorgcc] olarak kullandım. TDM-GCC 5.1 ve Perl 5.22 kullanılır. – BladeMight

+0

Bir süre önce colorgcc'i duyduğumu hatırlıyorum, hiç denemedim. Ben yapabilirim. Resmi yerleşik boyama çalışmasına rağmen (ki bu da .. göze daha hoş geliyor) güzel olurdu. Clang boyama ile aynı. –

cevap

2

.0 en diagnostic-color.c orada görünür:

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

gerçek mantık izledi. Bunu düzeltmek için, kendiniz gcc oluşturuyorsanız, ilk satırı #if 0 olarak değiştirin. Bu benim için çalıştı, bir kabuk olarak MSYS2 kullanarak mingw-w64 5.2.0 (32-bit) altında gcc-6.3.0 inşa.

Önceden paketlenmiş bir gcc derlemesi kullanıyorsanız, sanırım sıkışmışsınız demektir. (Aktarılan) o tepki ile


A gcc bug has been filed "Mevcut gcc geliştiriciler arasında kimse Windows'u kullanıyor ve bu sorunu gidermek için Windows yama gönderme sürecinden geçmesi gerekiyor kullanarak birisi".

Hata raporu iş parçacığı üzerinde, kabuk yeteneği algılamak için Win32 sistem çağrılarını kullanan auto davranışını uygulamaya çalışan üçüncü taraf bir yama var.

Yukarıdaki çözümümün kullanıldığında, "otomatik" davranışı varsayılan olarak "kapalı" olur ve bunu "her zaman" anahtarıyla etkinleştirmeniz gerekir (bu benim için kesinlikle iyi, ancak sanırım başkalarına iyi gelmeyebilir).