Komischer Fehler



  • Hey Leute,
    habe wieder mal ein kleines problem was ich nicht gelöst bekomme:(
    Ich habe mir ein Programm geschrieben was mir Zahlen die der Benutzer eingibt sortiert von klein nach groß und wieder alle ausgibt.
    Habe mir dazu einfach eine verkettete Liste geschrieben, die die Daten(Zahlen) an Knoten weitergibt und diese Ordnen dann die Zahlen ein.

    Jedoch habe ich noch einen compiler Fehler den ich nicht wegbekomme und der mir auch nichts sagt, google wollte mir leider auch nicht helfen=(
    Er sagt calling fdopen: bad file descriptor.
    In der Zeile wo der Fehler sein soll, steht nur
    #include "classData.h"

    das komische ist in meinem ordner wo die dateien sind, erzeugt er immer eine datei namen. classData.h.gch

    Hoffe ihr könnt mir Helfen.



  • Welcher Compiler? Das hat mit C++ an sich nämlich nichts zu tun.



  • arbeite mit code blocks als ide und dem gnu compiler.



  • Notfalls bietet sich an, precompiled headers einfach auszuschalten.
    Verwendest du auch eine aktuelle gcc-Version?



  • ehm was sind precompiled headers und wie schalte ich sie aus?
    ehm was ist gcc? und wo seh ich das....??



  • Das ist gcc: http://gcc.gnu.org/
    Und die Version bekommst du z.B. mit g++ --version
    Hast du mal versucht, alle .gch-Dateien zu löschen?

    Edit: du kannst für jede Header-Datei in deinem Projekt über Rechtsklick/Properties/Build "compile file" ausstellen, damit werden Headerdateien nicht mehr vorkompiliert.



  • ehm wo soll ich des g++ --version eingeben?
    ja wenn ich die .gch dateien lösche und wieder compiliere werden sie wieder erzeugt.
    hab das vorkompilieren ausgestellt, der fehler kommt net mehr,
    dafür sagt er jetzt:
    mingw32-g.exe: meineHeader.h no suchfile or directory

    und das ganze 3 mal für alle meine 3 header dateien?



  • fr33g schrieb:

    ehm wo soll ich des g++ --version eingeben?

    Im Terminal...
    Bei dir vielleicht auch mingw32-g.exe --version

    fr33g schrieb:

    mingw32-g.exe: meineHeader.h no suchfile or directory

    Wie bindest du die Header denn ein? Ist das Verzeichnis mit der Headerdatei bei den Include-Paths dabei?

    fr33g schrieb:

    und das ganze 3 mal für alle meine 3 header dateien?

    Natürlich.



  • Also ich schreibe einfach

    #include "classNode.h"
    #include "classData.h"
    #include "classLinkedList.h"

    die headerdateien sind in dem projektordner drinne wo au die main.cpp is, dürft ja also reichen oder net?

    also ich sollte ja bei den einstellungen von den headerdateien das vorcompilieren abschalten, hab jetzt einfach mal dazu bei linken den haken weg gemacht...jetzt geht es:D
    aber warum?
    und was bedeutet das vorcompilieren und das linken wenn ich es wegmache?

    danke schonmal



  • Linken darf natürlich bei Headern nie ausgewählt sein 😮
    Precompiled headers dienen einfach dazu, das ständige Parsen von Headerdateien abzukürzen, indem die Ergenisse zwischengespeichert werden.

    *:
    http://gcc.gnu.org/onlinedocs/gcc/Precompiled-Headers.html
    http://wiki.codeblocks.org/index.php?title=Precompiled_headers



  • ok also header nie linken, bin ich schonmal schlauer:-P
    also heißt das wenn man header vorcompiliert, werden alle header aus einem projekt die den haken bei compilieren habeen, in eine header zusammen reincompiliert damit das compilieren später dann schneller geht?

    ehm was heißt parsen?


Anmelden zum Antworten