Forum: Compiler & IDEs Compiler bedingt stoppen


von Matthias Li. (Gast)


Lesenswert?

Hallo zusammen,

ich bin gerade auf der Suche nach einer möglichkeit die Compilierung 
bedingt abzubrechen.
1
#ifndef BAUD
2
#error "BAUD - BaudRate nicht definiert"
3
/*Hier sollte der Compiler abbrechen*/
4
#endif

Die Präprozessoranweisung bringt zwar einen Fehler, jedoch werden auch 
alle anderen Fehler angezeigt, welche mit der fehlenden definition 
einhergehen, und die Ausgabe wird seehr unübersichtlich!

Gibt es also die Möglichkeit das kompilieren abzubrechen oder bleibt nur 
eine bedingte Definition von BAUD und einfach nur ne Warnung anzeigen?

also so in der Art!
1
#ifndef BAUD
2
#warning "BAUD - BaudRate nicht definiert wird auf 9600 festgelegt"
3
#define BAUD 9600
4
#endif

Vielen dank im Vorraus

Matthias

von Dr. Sommer (Gast)


Lesenswert?

Matthias Li. schrieb:
> Die Präprozessoranweisung bringt zwar einen Fehler, jedoch werden auch
> alle anderen Fehler angezeigt, welche mit der fehlenden definition
> einhergehen,
Pack das #error ganz an den Anfang der Datei, dann erscheint diese 
Fehlermeldung ganz am Anfang der Compiler-Ausgabe, und da jeder 
Programmierer bei Compiler-Fehlern immer sofort ganz oben guckt weiß man 
sofort was kaputt ist.

von Bitfllüsterer (Gast)


Lesenswert?

Nein. Man kann den Compiler nicht durch präprozessoranweisungen 
abbrechen.

Möglicherweise ändert sich die "Übersichtlichkeit" noch mit der Zeit 
(ich weiss ja nicht, wie lange Du schon programmierst).

Ich gucke immer erstmal nach der ersten Meldung. Man sieht mit einer 
gewissen Erfahrung später, welche folgenden Meldungen nur Folgefehler 
sind. Nach einigen Fehlern kommen dann wieder die "ernsthaften".

Aber als Tip könntest Du in der eigenen Warnung noch eine auffällige 
Zeichenkette hinzufügen. Etwa:
1
#ifndef BAUD
2
#error "!!!!!!!!!!!!!!!!!!! BAUD - BaudRate nicht definiert !!!!!!!!!!!!!!"
3
/*Hier sollte der Compiler abbrechen*/
4
#endif

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


Lesenswert?

Matthias Li. schrieb:
> oder bleibt nur eine bedingte Definition von BAUD

Warum nicht eine bedingte (Nicht-)Compilierung des Restes, falls BAUD
nicht definiert ist?

von Matthias Li. (Gast)


Lesenswert?

Hi,
erstmal danke für die Antworten! :-)
die Fehleranweisung steht schon ganz oben und ich gehe auch nach der 
TOP-DOWN Strategie vor.

OK, dann wäre das geklärt. Ich habe erstmal einige Ausrufezeichen 
hinzugefügt!

Nochmals vielen Dank!!

Gruß
Matthias

von Matthias Li. (Gast)


Lesenswert?

Jörg Wunsch schrieb:
> Warum nicht eine bedingte (Nicht-)Compilierung des Restes, falls BAUD
> nicht definiert ist?

sorry es gab da wohl ne Überschneidung, hab den post gerade erst gelesen

mit der bedingten Compilierung funktioniert es, genau das was ich 
gesucht habe... man muss halt nur aufpassen, das am ende das
1
#endif
 steht jetzt schäm ich mich fast ein bisschen :-(

Danke für den Tipp!!
MFG

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Es gibt -Wfatal-errors und -fmax-errors=<number>.

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.