undefined reference to...



  • Ich benutze Dev-C++ (4.9.9.2) und will in meinem Projekt Klassen verwenden, die soch in einem anderen Ordner befinden.

    Beispiel:

    Mein Projekt liegt im Ordnder

    C:/A

    und ich will eine Klasse X aus einem Projekt im Ornder

    C:/B

    verwenden.

    Entsprechend habe ich

    #include "..\B\X.h"
    

    gesetzt.

    Nun kommt aber beim Compilieren ein Linker-Fehler zu allen Aufrufen der vewendeten Klasse X:

    [Linker error] undefined reference to X::X()' [Linker error] undefined reference toX::doSomething()'

    usw.

    Ich habe mal irgendwo gelesen, dass Dev-C++ nicht automatisch alle Dateien mit einbindet (die .cpp Dateien)?

    In Dev-C++ kann ich in den Optionen des Linkers Befehle auf den Weg geben.

    Muss ich dort Parameter eintragen, damit es korrekt funktioniert? (Und wenn ja welche?)



  • Versuchs mal mit Slashes statt mit Backslashes. Wenn das nicht funktioniert, überprüf, ob du alle Include Guards richtig gesetzt hast und keine gegenseitigen Abhängigkeiten eingebaut hast.



  • Michael E. schrieb:

    Versuchs mal mit Slashes statt mit Backslashes. Wenn das nicht funktioniert, überprüf, ob du alle Include Guards richtig gesetzt hast und keine gegenseitigen Abhängigkeiten eingebaut hast.

    Hm nein daran lag es nicht 😞

    Ich habe jetzt mal statt

    #include "..\A\X.h
    
    #include "..\A\X.cpp
    

    geschrieben. Dann kommt der Linker-Fehler nicht mehr, allerdings gibts dann

    "multiple definition of..." -Fehler (verständlicherweise).

    Die beiden Projekte für sich funktionieren einwandfrei. Es kommt nur zum Problem, sobald ich Klassen in mein Projekt einbinden und dort verwenden will.



  • Du musst ein Projekt erstellen und die Dateien dort hinzufügen.

    BR
    Vinzenz



  • Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum Compiler-Forum verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • evilissimo schrieb:

    Du musst ein Projekt erstellen und die Dateien dort hinzufügen.

    BR
    Vinzenz

    Das war's, danke! 🙂

    Ich musste in DEV-C++ mit "Add to project" die erforderlichen Dateien hinzufügen.
    Ich wusste nicht, dass das zwingend notwendig ist (dachte das wäre nur der Übersichtlichkeit halber)


Log in to reply