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 ...)
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 ...
Gcc 4.9 semble avoir ajouté cette fonctionnalité via le -fdiagnostics-color
drapeau:
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.
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).
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:
Après:
Voir colorgcc , un script Perl qui colore la sortie gcc.
ColorMake colorise la sortie de GCC et Make, mettant en évidence les avertissements et les erreurs.
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!
Sudo cp ~/Downloads/Install_Files/colorgcc-master/colorgcc.pl /usr/bin/colorgcc
Sudo chmod +x /usr/bin/colorgcc
mkdir ~/bin
gcc
ou g++
, Il appelle automatiquement colorgcc
à la place: ln -s /usr/bin/colorgcc ~/bin/g++
ln -s /usr/bin/colorgcc ~/bin/gcc
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
:
* 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
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.
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.