g++ Ausgebe anhalten, (sowas wie | more)



  • Hi, ein Programm lässt sich nicht mehr Kompilieren (total geil. Gestern ging es noch problemlos, heute nach einer kleinen Änderung fliegt mir alles um die Ohren. Eine Vorversion, die sich fehlerlos kompilieren liess, wirft die gleichen Fehler, ich könnte Tische zertrümmern...). Um irgendwie herauszufinden, was da schiefläuft (ich bekomme tausende Fehler von wegen "undefined reference" auf Gott und die Welt die über "Drittheader" dazukommen) würde ich gerne mal die ersten Zeilen der Fehlerausgabe vom g++ lesen können, da das 100% folgefehler von irgendwas sind und an einer ganz anderen Stelle was schief geht. Nur geht das nicht, weil diese Fehler mir alles zuballern und ich so nicht an den Anfang scrollen kann.

    Kann ich dem g++ irgendwie beibringen, die Ausgabe der Fehler nach einer Seite abzubrechen, oder in eine Datei umzuleiten? sofas wie ls | more oder so?



  • > g++ -Wall -W foo.cpp 2>&1 | less
    

    Aber benutze doch eine IDE oder einen Editor, die Kompilierung unterstützen und dir die g++ Ausgabe highlighted und per Mausklick zum Fehler springen erlauben. Glaub mir, dass macht die Welt leichter 🙂

    Versuch im Emacs zB einfach mal F9 oder M-x compile (Ich kann dir auch ein nützliches Skript geben, was compile mit mehr Komfort ausstattet, wenn du den Emacs benutzt).



  • Danke, eigentlich verwende ich ja kdevelop, aber da müssen mehrere externe *.cpp Dateien noch eingebunden werden und da weiss ich nicht genau, wie ich das korrekt anstelle, deswegen mach ich das dann per Hand- bisher ging ja auch alles gut. Aber leider hilft mir Dein Tipp auch nicht weiter, den allerersten Fehler, wo er mir melden sollte, wass er da nicht eingebunden bekommt bzw. nicht findet, zeigt er auch nicht an. Er beginnt mit dem ersten

    /tmp/ccwlDvTA.o(.text+0x8f): In function `main':
    : undefined reference to `soap_new'
    

    Und die Ursache, warum er das nicht findet liegt tiefer. Ich habe da nicht vergessen eine Lib anzugeben, da liegt was anderes im Argen.



  • Physikalischer Fehler schrieb:

    Danke, eigentlich verwende ich ja kdevelop, aber da müssen mehrere externe *.cpp Dateien noch eingebunden werden und da weiss ich nicht genau, wie ich das korrekt anstelle, [...]

    Versuch doch mal die Dateien im Automake-Manager einzutragen: Automake-Manager->Vorhandene Dateien hinzufügen, oder habe ich das jetzt falsch verstanden?



  • Mit dem Automake Manager sollte ich mich mal genauer befassen.
    Übrigens scheint es Wunder zu geben. Gestern beim compilen 1000 Fehler. Heute habe ich es erneut versucht, die selben Dateien, die gleichen Befehle...und nichts wird mehr beanstandet.

    Fazit: Computer sind elende Zicken!



  • Hast du vielleicht vorher ein make clean gemacht? 🙂



  • nö...gestern Abend Karre aus gemacht, heute Morgen wieder an geschaltet.



  • Es ist häufig sehr nützlich, wenn man alle *.o löscht im Verzeichnis löscht.

    Umleitung in eine Datei wäre eine einfache Lösung:
    make >& y.tmp

    Dann stehen alle Compilermeldungen in der y.tmp


Anmelden zum Antworten