[GELÖST] Undefined refrence to... ??



  • Und du bist sicher, dass du die Datei mitkompilierst?

    Ansonsten Debug-Strategie #4: Reduziere dein Beispiel auf ein Minimum, sodass es den Fehler immer noch repräsentiert.



  • ok mit codeblocks kenn ich mich ned so aus ...
    hast du dafür eine makefile gemacht?
    wenn ja: poste es doch mal, wenn nein: poste doch mal den linkererror im detail ^^



  • ach ja ...
    hast du die schritte wie folgt gemacht?
    http://www.pronix.de/pronix-1194.html
    (google hilft 😉 )



  • Würd dir empfehlen das Projekt nochmal neu anzulegen und die Dateien dann auch neu zu erstellen über CodeBlocks. Und dann den Code reinkopieren.
    Probier das mal, das müsste dann eigentlich gehen, weil Fehler am Code selber seh ich auch keine.

    Lg freeG



  • Danke für den Hinweis.
    Leider klappt es so nicht.. seltsam...



  • Ah, jetzt ab ich erst deinen Post gelesen, lemacabre.
    Nein, ein Projekt hatte ich garnicht angelegt.
    Davon stand auch nix in meinem C++-Buch und bei den Beispielen vorher hatte es auch geklappt. Wieso muss ich dafür ein Projekt anlegen?



  • Tonikum schrieb:

    Wieso muss ich dafür ein Projekt anlegen?

    Entweder du kannst selber händisch deinen Compiler und Linker bedienen (sprich auf der Kommandozeile einzelne Dateien kompilieren und die Objectfiles dann linken) oder du lässt dir von einer IDE helfen. So ein "Projekt" enthält u.A. eine Liste aller zu kompilierender Dateien, welche einzelnen Targets (also .exe, libs) zugewiesen sind. Wenn du deine ganzen Dateien ins Projekt einfügst, wirst du solche Probleme nicht mehr bekommen.



  • Ja wenn du ein Projekt anlegst, dann linkt der Linker automatisch alle Files bzw Objektdateien die in dem Projekt enthalten sind.
    Hast du nur einzelne Files musst du dass dem Linker schon mitteilen 😉

    Lg freeG



  • ICh dachte, durch das Inkludieren des HEaders wüsste der Linker alles, was er braucht? Naja, dann mache ich das in Zukunft. Dankeschön 🙂
    Aber ich frage mich dennoch, wieso es bei den Beispielen davor geklappt hat.



  • Im Header stehen meist nur Deklarationen, dein Programm will aber auch die Definitionen, denn ohne die weiß niemand was zu tun ist 😛
    Die Namenskonventionen kennt der Compiler/linker auch nicht. Du kannst deinen header "Taschenrechner.h" nennen, die Definitionen stecken dann aber in "created_20100908_unit1.cpp" im Unterordner "src/impl/smart_smurph_drinking_slurm". Und der Compiler soll jetzt erraten, dass wenn "Taschenrechner.h" eingebunden wird, automatisch diese komische Datei ebenfalls kompiliert werden soll? Nönönö 😛 Das musst du denen schon selber sagen 😉
    Außerdem könnte der Header aus einer externen Bibliothek stammen, die als ganzes dazugelinkt wird - da gibt es gar nix mehr zum Kompilieren.



  • *lach* Okay, danke. 🙂
    Ich wünsche, ich würde das auch mal alles verstehen.
    Ich hatte das so verstanden, dass er sich aus dem Header die Definitonen und aus dem gleichnamigen cpp-File die Deklarationen schnappt.

    Ihr habt mir mal wieder sehr geholfen. 🙂


Anmelden zum Antworten