warning: no newline at end of file



  • Hallo,

    ich versuche gerade, ein Projekt einer anderen Person zum Laufen zu bekommen. Das hat auch geklappt. Jetzt würde ich gerne ein paar der Warnungen minimieren. Eine der Warnung lautet wie o.g. Ich arbeite mit g++-4.1.

    Die FAQ und Google Suche liefern leider nur die offensichtliche Lösung, in den entsprechenden Dateien halt eine Leerzeile ans Ende zu packen. In den entsprechenden Dateien sind aber jeweils genug Leerzeilen am Ende.

    Gibt es für o.g. Warnung noch andere Möglichkeiten/Gründe? Für etwas Hilfestellung wär ich sehr dankbar.

    Viele Grüße, mbu.



  • Was für Dateien betrifft denn diese Meldung? (zeig ein Beispiel) Hast du eventuell vergessen, Kommentare oder #if-Blöcke wieder abzuschließen?



  • Evtl. stimmt was mit dem Dateiformat nicht? Wurden die Quelldateien unter dem System erstellt, welches du jetzt auch nutzt?



  • wurden die source-dateien womöglich unter einer Windows-Entwicklungsumgebung erstellt? Ich hatte das Problem schonmal mit source-dateien, die unter UNIX erstellt wurden und ich unter Windows verwenden wollte.
    Ich glaub ich habe damals in diesen Dateien (Source+Header) ein newline eingefügt. Da musst du aber sicherstellen, dass du das Newline ganz am Schluss setzt.



  • Also der Befehl 'make main.o' verursacht zum Beispiel folgend Meldung:

    In file included from /home/mbu/MC/include/Initial_Techn.h:14,
    from /home/mbu/MC/include/ME_Tools.h:27,
    from /home/mbu/MC/include/ME_Algorithms.h:11,
    from /home/mbu/MC/include/V_M.h:11,
    from source/main.cpp:20:
    /home/mbu/MC/include/ME_Tools.h:167:3: warning: no newline at end of file

    Die Kommentare und #if-Blöcke werde ich mal untersuchen.

    Unter welchem System die Quelldateien erstellt wurden, weiss ich leider nicht. Ich vermute aber unter Linux.



  • Also das darf ja echt nicht wahr sein. Ich hab das Problem scheinbar gefunden: In der jeweils letzten Zeile der entsprechenden Dateien war nicht nur eine Leerzeile sondern auch noch jeweils ein paar Leerzeichen. Wenn ich diese entferne, kompiliert das ganze ohne Warnmeldungen. Da soll mal einer drauf kommen.



  • mbu schrieb:

    Also das darf ja echt nicht wahr sein. Ich hab das Problem scheinbar gefunden: In der jeweils letzten Zeile der entsprechenden Dateien war nicht nur eine Leerzeile sondern auch noch jeweils ein paar Leerzeichen. Wenn ich diese entferne, kompiliert das ganze ohne Warnmeldungen. Da soll mal einer drauf kommen.

    Hätte ich Dir auch sagen können - habe anscheinend denselben Compiler.

    Aber ehrlich gesagt, war das doch genau DAS, was man aus der Fehlermeldung herauslesen konnte, oder ? :p 😃
    Ich habe den "Fehler" auch immer mal wieder, erinnere mich aber nicht, dass ich irgendwann mal Probleme damit gehabt hätte, ihn loszuwerden....

    Gruß,

    Simon2.



  • Simon2 schrieb:

    Aber ehrlich gesagt, war das doch genau DAS, was man aus der Fehlermeldung herauslesen konnte, oder ?

    Vom Prinzip schon. Allerdings funktioniert das - zumindest bei mir - dann ja so, dass ich einfach mal flink runterscrolle, sehe, dass da eine Leerzeile ist und nicht weiter nach nicht sichtbaren Zeichen checke. 🙄



  • Jedes Zeichen == voll
    Leerzeichen == voll
    "Leerzeichen in Zeile" != Leerzeile

    Alles klar? Die CPU verzeiht keine Fehler! Entweder richtig oder falsch. Aber wem erzähl ich das? 😉



  • mbu schrieb:

    /home/mbu/MC/include/ME_Tools.h:167:3: warning: no newline at end of file

    Das sagt mir doch, dass er in Datei ME_tools.h, Zeile 167, Spalte 3 sitzt und die Datei unerwartet zuende war - also hatte er wohl nach dem newline noch 3 blanks, die er nicht mochte, oder eben nach dem letzten } doch kein newline. Es steht halt immer genau das was den Rechner stoert auch in der Fehlermeldung 😉



  • Hm. Jaja, macht mich fertig 😃 🙄



  • no newline at end of file

    Hast Du Dich vielleicht "verlesen" ? Da steht "newline" und nicht "new line" ...
    Erstes bezeichnet ganz klar ein bestimmtes Zeichen, das er am Ende der Datei ("at end of file") vermisst .... und dafür gibt's genau einen Grund: Es ist nicht da ! 😃

    Gruß,

    Simon2.


Anmelden zum Antworten