Doku zu Warning- und Error- Meldungen von MinGW



  • Hallo Alle zusammen.

    Weiß jemand etwas genaueres über die Error- und Warning- Ausgaben von MinGW?

    Wenn ich zum Beispiel ein Makro auskommentiere, welches sich über mehrere Zeilen erstreckt und dieses auskommentiere, wie in diesem Beispiel, ...

    // #define HTML_CELL_STRUCT_BEGINN(width) \
    // String_imp("<TD width=\"10%\" \
    // nowrap=\"nowrap\" \
    // style=\"white-space:nowrap\"> \n")

    (Nach jedem "\" folgt direkt eine Zeilen-Umbruch)
    ...

    bekomme ich vom Compiler (MinGW(C/C++ only) Compiler 3.4.2 angestoßen über MinGW Developer Studio 2.05) folgende Warnung: "multi-line comment". Nehme ich dann die Zeichen "\" am Ende der Zeilen weg, dann bleibt die Warnung aus.

    Ich kenne keinen anderen Compiler, der sich in dieser Weise beschwert. Warum tut es MinGW?

    Das Programm, daß trotz der Warnung erzeugt wird, tut übrigens was es tun soll. Trotzdem habe ich es mir zur Angewohnheit gemacht, auch Warnungen des Compilers möglichst zu berücksichtigen, um meinen Programmier-Stiel zu verbessern. Aber dazu wüßte ich gerne mehr über den Hintergrund dieser Meldung.

    Nun mußte ich aber leider feststellen, daß die Ausgaben des Compilers im Handbuch des Compilers auf der GNU-Homepage nicht im einzelnen beschrieben sind. Oder ich war einfach blind. Darum hier meine allgemeine Frage:

    Wo finde ich nähere Angaben zu den möglichen Warning- und Error- Meldungen von MinGW?

    Danke für die Hilfe,
    Eckard Klotz.



  • Eine Doku der Meldungen kann ich dir leider nicht geben, wohl aber diesen Fall klaeren:

    Es ist lediglich eine Warnung, wohl eher mehr eine Mitteilung. Eine Zeile die mit \ beendet wird, wird fuer den Compiler interpretiert als waere dort kein Zeilenumbruch. Sonst wuerde das Makro dort ja nicht klappen 🙂

    Nun hast du diese 1. Zeile auskommentiert und somit sind die restlichen // unnoetig, weil // ja bis zum Zeilenende geht (welches durch das \ ja ignoriert wird). Und genau das teilt dir der gcc mit.



  • Hallo

    Erstens vielen Dank für die Antwort und zweitens, Entschuldigung für meine späte Rück-Meldung.

    Ich kann Deine Angaben zur Warnung selber voll bestätigen. Weiter Untersuchungen zeigen, daß es übrigens reicht, nur die erste Zeile mit // auszukommentieren, um diese Warn-Meldung zu erhalten. Man kann diese Meldung nur verhindern, in dem man Blöcke mit [\"Zeilen-Umbruch"] am Zeilen-Ende durch /* und */ auskommentiert. Vermutlich ist es so, daß im Falle der Benutzung von // nur die erste Zeile vom Compiler wirklich zur Generierung der Warnung herangezogen wird, um den Programmierer darauf hinzuweisen, daß diese Auskommentierung sich halt eben nicht nur auf eine Zeile auswirkt, sondern auf die folgenden ebenfalls, so lange bis der Präprozessor auf eine Zeile ohne [\"Zeilen-Umbruch"] am Zeilen-Ende trifft. Daß ich in meinem Fall alle diese Zeilen mit einem eigenen // auskommentiert habe wird dabei gar nicht registriert.
    In sofern ist meine Neugier, voll befriedigt, was diesen speziellen Fall anbelangt.

    Dennoch die Kernfrage lautet eigentlich wo findet man generell eine Beschreibung aller Fehler- und Warnmeldungen, die der Compiler MinGW liefert? Auf den betreffenden Seiten von MinGW oder GNU bin ich bisher nicht fündig geworden. Kann es sein, daß sich die Meldungen letztlich auf einen allgemeinen Standard beziehen, der im Rahmen von ANSI-C definiert ist? Wenn ja wo findet man dazu Informationen?

    Ich wünsche allerseits frohe Weihnachten und ein erfolgreiches und glückliches neues Jahr!

    Mit freundlichen Grüßen,
    Eckard Klotz.


Anmelden zum Antworten