web-dev-qa-db-fra.com

Existe-t-il un moyen simple de COLOR-CODE les sorties du compilateur?

gcc (ou d'autres compilateurs) génèrent souvent une énorme sortie de texte et il est très difficile de voir où est l'erreur ou de manquer les avertissements. J'ai fait quelques recherches mais je n'ai pas trouvé de solution simple et propre pour coder en couleur la sortie du compilateur (donc par exemple les avertissements sont jaunes, les erreurs sont rouges, etc ...)

37
Ann Brown

voici une alternative si vous cherchez quelque chose de très simple:

#!/bin/bash -e

make ${@} 2>&1 | Perl -wln -M'Term::ANSIColor' -e '
m/Building|gcc|g++|\bCC\b|\bcc\b/ and print "\e[1;32m", "$_", "\e[0m"
or
m/Error/i and print "\e[1;91m", "$_", "\e[0m"
or
m/Warning/i and print "\e[1;93m", "$_", "\e[0m"
or
m/Linking|\.a\b/ and print "\e[1;36m", "$_", "\e[0m"
or
print; '

Alias ​​juste votre make à ce script et assurez-vous qu'il est exécutable ...

25
Reza Toghraee

Gcc 4.9 semble avoir ajouté cette fonctionnalité via le -fdiagnostics-color drapeau:

27
akid

Debian et Ubuntu donnent le paquet colorgcc à cet effet.

Et je lance généralement gcc (et make) à travers emacs avec M-x compile puis les messages sont colorisés.

addenda

GCC 4.9 possède une fonction de colorisation native et GCC 6 - sortie fin avril 2016 et probablement --- (GCC 5 aussi) l'active par défaut (lorsque stdout est un terminal).

15
Basile Starynkevitch

Ok, je vais aussi laisser un avis sur mon propre outil (basé sur python) :)

Il est appelé Pluggable Output Processor et conçu non seulement pour coloriser la sortie d'un programme particulier. Voici un exemple de sortie GCC avant:

Pluggable Output Processor Before Après: Pluggable Output Processor Before

12
zaufi

Voir colorgcc , un script Perl qui colore la sortie gcc.

11
CharlesB

ColorMake colorise la sortie de GCC et Make, mettant en évidence les avertissements et les erreurs.

Screenshot

3
Renato Silva

Comment installer et utiliser colorgcc pour coloriser la sortie de votre compilateur gcc:

Jusqu'à présent, au moins 3 réponses mentionnent colorgcc , mais AUCUNE D'ELLES N'EXPLIQUE COMMENT L'INSTALLER! (Et ce n'est pas évident). Alors, voici comment installer la dernière version dans Ubuntu!

  1. Allez ici et cliquez sur "Cloner ou télécharger" -> "Télécharger Zip". Je l'ai enregistré dans "~/Téléchargements/Install_Files"
  2. Accédez-y dans votre navigateur de fichiers et faites un clic droit dessus et allez dans "Extraire ici". J'ai maintenant un répertoire appelé "~/Downloads/Install_Files/colorgcc-master".
  3. Copiez le script "colorgcc.pl" dans "/ usr/bin/colorgcc" pour "l'installer" (assurez-vous d'utiliser le bon répertoire selon l'endroit où vous l'avez extrait ci-dessus): Sudo cp ~/Downloads/Install_Files/colorgcc-master/colorgcc.pl /usr/bin/colorgcc
  4. Rendez-le exécutable: Sudo chmod +x /usr/bin/colorgcc
  5. Créez le répertoire "~/bin" s'il n'existe pas encore: mkdir ~/bin
  6. * Créez des liens symboliques pointant vers "/ usr/bin/colorgcc" afin que chaque fois que vous appelez gcc ou g++, Il appelle automatiquement colorgcc à la place:
    • ln -s /usr/bin/colorgcc ~/bin/g++
    • ln -s /usr/bin/colorgcc ~/bin/gcc
    • (si vous souhaitez désinstaller colorgcc pour une raison quelconque, supprimez simplement ces liens symboliques "~/bin/g ++" et "~/bin/gcc", et le script Perl: "/ usr/bin/colorgcc" et vous avez terminé )
  7. Terminé!

Voici un exemple de sortie de g++ Maintenant lorsque j'appelle g++ -Wall -std=c++11 time_until_overflow_2.cpp -o time_until_overflow_2:

enter image description here

* Remarque: rendre ces liens symboliques dans "~/bin" ne fonctionne que si "~/bin" est dans votre variable PATH dans un emplacement avant le dossier où se trouvent les exécutables gcc et g++ réels. Pour vous assurer d'avoir "~/bin" dans votre chemin, vous pouvez afficher le contenu de la variable PATH avec: echo $PATH. Si vous ne voyez pas "/ home/YOUR_USERNAME/bin" au début de votre chemin, ajoutez-le avec: export PATH=~/bin:$PATH.

Les références:

Voir ici pour plus d'informations. et où j'ai appris à l'origine la plupart de ces étapes: https://imranfanaswala.wordpress.com/2009/02/02/setting-up-colorgcc/ . Merci Imran Fanaswala!

~ GS

1
Gabriel Staples

vous pouvez utiliser GilCC qui est un outil Ruby qui convertira la sortie GCC en couleur en temps réel. Pour le moment, vous avez deux choix: script Perl (colorGCC) ou GilCC et si vous travaillez déjà avec Ruby vous aimerez GilCC.

Unique à GilCC; GilCC a des compteurs d'avertissement et d'erreurs et affiche également le temps de compilation, très pratique lorsque vous essayez d'améliorer les choses. Parce qu'il est en Ruby c'est une plateforme croisée. Il est flexible et vous pouvez ajouter plus de gemmes pour le personnaliser comme vous le souhaitez.

Le lien vers la page de téléchargement est ici.

https://github.com/gilmotta/GilCC

0
Gilson

Bien que GCC 4.9 ait l'option -fdiagnostics-color pour activer les sorties colorées vers les terminaux, j'ai créé un petit outil appelé ' crror ' pour obtenir une sortie colorée du compilateur.

Il prend également en charge les sorties de make. Je peux ajouter des motifs de colorisation pour d'autres outils si quelqu'un le souhaite.

0
Takashi Oguma