Viele undefinierte Referenzen, und kein Land in Sicht



  • Bin gerade dabei, ein paar Miniklassen zu schreiben, um mich im Bereich Vererbung/Polymorphe Klassen usw weiterzubilden. Habe auch hier und da vererbt, und alles hat auch schoen kompiliert/gelinkt und wurde fehlerfrei ausgefuehrt, seitdem ich allerdings zwei neue Klassen eingefuegt habe, bekomme ich beim verlinken zu einer binary folgende Fehler:

    [11:40 ][rpg]>> ./build.sh compile
    compiling CCharacter.cpp...
    compiling CInventory.cpp...
    compiling CItem.cpp...
    compiling CMonster.cpp...
    compiling test.cpp...
    linking binary...
    CInventory.o(.text+0x88): In function CInventory::CInventory[not-in-charge]()': : undefined reference toCItem::~CItem [not-in-charge]()'
    CInventory.o(.text+0xd8): In function CInventory::CInventory[in-charge]()': : undefined reference toCItem::~CItem [not-in-charge]()'
    CInventory.o(.text+0x10c): In function CInventory::~CInventory [not-in-charge]()': : undefined reference toCItem::~CItem [in-charge]()'
    CInventory.o(.text+0x114): In function CInventory::~CInventory [not-in-charge]()': : undefined reference toCItem::~CItem [not-in-charge]()'
    CInventory.o(.text+0x128): In function CInventory::~CInventory [not-in-charge]()': : undefined reference toCItem::~CItem [not-in-charge]()'
    CInventory.o(.text+0x15c): In function CInventory::~CInventory [in-charge]()': : undefined reference toCItem::~CItem [in-charge]()'
    CInventory.o(.text+0x164): In function CInventory::~CInventory [in-charge]()': : undefined reference toCItem::~CItem [not-in-charge]()'
    CInventory.o(.text+0x178): In function CInventory::~CInventory [in-charge]()': : undefined reference toCItem::~CItem [not-in-charge]()'
    collect2: ld returned 1 exit status

    Den kompletten Quellcode gibt es hier: http://lowercase.mine.nu/files/rpg.tar

    CInventory erbt von CItem.
    Das ganze soll mal eine aufgeblaehte 😉 Klassenhierarchie werden, die unter http://lowercase.mine.nu/files/hierarchy.png oberflaechlich beschrieben ist.

    Eins hat sich schonmal herauskristalisiert: Undefinierte Referenzen kommen nur bei Instanziierung von meinen Klassen (in test.cpp), was vorher noch wunderbar geklappt hat.



  • Du hast die genannten Funktionen gar nicht implementiert. Hier ist es CItem::~CItem().



  • Ich bedanke mich rechtherzlich.
    Ich frage mich gerade, wie ich das die ganze Zeit uebersehen konnte...


Anmelden zum Antworten