Linker Problem



  • Moin !
    Also ich arbeite mit dem Borland C Compiler 4.5. Und zwar will ich meine Header datei einbinden. So das klappt soweit nur wie bekomme ich das gelinkt ?
    Also was unter Linux : g++ test.cpp -header.o wäre ???
    MfG



  • Header werden weder compiliert noch gelinkt, sondern lediglich in ÜE (.cpp) eingebunden ( ➡ #include).



  • main.cpp

    #include "KlasseElefanten.h"
    
    main()
    {
    //hier das programm
    }
    

    KlasseElefanten.h

    #ifndef KLASSEELEFANTEN_H  //das sind include-guards
    #define KLASSEELEFANTEN_H
    
    class Elefanten
    {
    //hier die deklarationen
    };
    
    #endif // KLASSEELEFANTEN_H
    

    KlasseElefanten.cpp

    #include "KlasseElefanten.h"
    
    //hier die implementation, z.b. konstruktor:
    Elefanten::Elefanten()
    {
    }
    

    beantwortet das deine frage?



  • Ja also. Stand der Dinge ist soweit so das das ja in der H Datei die Klassen stehen (somit lassen sich Objekte erstellen), jedoch kann ich die Methoden(CPP Datei) nicht verwenden. Muß da nicht vorher irgendetwas gelinkt werden oder so ?



  • Versteh ich nicht. Wieso kannst du keine Methoden verwenden? Der Linker ist ja nur dazu da, um aus deinem compilierten Code eine Executable zu erstellen.



  • Wenn ich ein Main aufrufe wo ic meinen Header mit include "team.h" aufrufe, lässt sich ein Objekt der Klasse TEAM erstellen.Jedoch wenn ich eine Methode davon verwenden will und dieses compilieren will erhalte ich einen Fehler

    Linker Error: Undefined symbol TEAM::setplayer(int) in module main.cpp
    

    Deswegen komme ich auf den Linker



  • Dein Linker Fehler rührt daher, dass du in main.cpp die Funktion TEAM::setplayer(int) aufrufst, diese aber nie definiert (implementiert) hast.


Anmelden zum Antworten