Forum: Compiler & IDEs Bash avr-gcc error/warning farbig


von C. H. (_ch_)


Lesenswert?

Hallo,

gibt es eine Möglichkeit beim Kompilieren errors und warnings in der 
Konsole farbig hervorzuheben?
Gerade wenn man mehrere files kompiliert übersieht man schnell die eine 
oder andere Warnung.
Wie die prinzipiellen Prompt-Farbeinstellungen gemacht werden konnte mir 
google verraten, aber wie triggere ich die Farbauswahl auf das 
Schlüsselwort error oder warning? Braucht's dazu nen workaround im 
Makefile oder ein Skript im Hintergrund?

Gruß,
Christian

von yalu (Gast)


Lesenswert?

Versuch's mal damit:
1
make 2>&1|sed '/error/s/.*/\x1b[31m\0\x1b[m/;/warning/s/.*/\x1b[34m\0\x1b[m/'

von C. H. (_ch_)


Lesenswert?

Hallo yalu,

vielen Dank! Genau das habe ich gesucht.

Nach welchen Stichwörtern muss man suchen um sowas selbst 
herauszufinden? Oder sollte man lieber ein Buch über 
shell-skript-Programierung lesen?

Gruß,
Christian

von yalu (Gast)


Lesenswert?

> Nach welchen Stichwörtern muss man suchen um sowas selbst
> herauszufinden?

Hmm, ich weiß nicht. Vielleicht das Problem erst einmal zerlegen:

- Farbe in der Bash geht mit ANSI-Escape-Sequenzen.
- Die Fehlermeldungen des GCC sind ein (manchmal langer) Textstrom.
- In diesen müssen die Escape-Sequenzen an geeigneter Stelle eingefügt
  werden.
- Textstrom, passende Stellen suchen und Text einfügen klingt
  irgendwie nach sed

Sowohl über ANSI-Escape-Sequenzen als auch über sed weiß Google viel
zu berichten.

> Oder sollte man lieber ein Buch über shell-skript-Programierung
> lesen?

So arg viel Shell-Programmierung ist in dem o.g. Befehl ja nicht drin.
Man muss halt wissen, wie man den Stderr-Output von Make bzw. GCC in
Stdout umleitet, um den Pipe-Operator anwenden zu können. Den Rest
macht Sed.

Aber generell ist es kein Schaden, wenn man etwas Bash-Programmierung
kann. Ebenso sind Sed-, Awk- und Corutils-Kenntnisse immer von
Vorteil. In der Unix-/Linux-Welt wird nun mal viel geskriptet (weil
die Leute im Gegensatz zu den Windozern alle zu faul sind, etwas von
Hand zu machen ;-)), und diese Skripte kann man nur verstehen, ändern
oder selber schreiben, wenn man die o.g. Tools halbwegs kennt.

von C. H. (_ch_)


Lesenswert?

Danke dir! Das waren genug Stichworte für die nächsten Abende ;)

Gruß,
Christian

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

yalu wrote:

> ..., und diese Skripte kann man nur verstehen, ändern
> oder selber schreiben, wenn man die o.g. Tools halbwegs kennt.

Man sollte der Gerechtigkeit halber sagen, dass reguläre Ausdrücke
generell als "write-only" gelten, d. h. man kann sie mit dem
entsprechenden Wissen relativ einfach zusammenschreiben (und mit
bisschen trial&error testen), aber man kann einen beliebig komplexen
RE, den jemand anders geschrieben hat, als Mensch in der Regel nicht
auf Anhieb verstehen.  Es ist gewissermaßen eine Art vorkompiliertes
Muster, das von einer Maschine gut zu zerlegen ist.  Andererseits
ist mir nichts halbwegs vergleichbares bekannt, dass die
Funktionalität von REs irgendwo mit grafischen Eingabehilfen o. ä.
auch nur annähernd erreichen würde.

von Rolf Magnus (Gast)


Lesenswert?

Es gibt auch colorgcc.

von Rolf Magnus (Gast)


Lesenswert?

> Andererseits ist mir nichts halbwegs vergleichbares bekannt, dass die
> Funktionalität von REs irgendwo mit grafischen Eingabehilfen o. ä.
> auch nur annähernd erreichen würde.

In KDE gibt es ein graphisches Frontend, mit dem man sich REs 
zusammenklicken kann. Parallel dazu sieht man auch immer die 
Text-Version, an der man auch ändern kann. Das sieht dann z.B. so aus:
http://www.linux-user.de/ausgabe/2005/08/090-regex/kde.png

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Dass man sowas machen könnte, konnte ich mir vorstellen, aber wirklich
übersichtlicher finde ich es nicht. ;-)  Aber vielleicht kann man das
gut als Trainingswerkzeug benutzen, damit man sich später seine REs
selbst zusammenbasteln kann.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.