Fehlermeldung!! komisch!



  • Hallo!
    Ich habe eine header-datei, in der ich eine klasse definiere. in der gleichen header-datei initialisiere ich auch zwei objekte der klasse, damit ich überall
    auf sie zugreifen kann.
    ich mache das nach der klassendefinition aber noch vor

    #include "irgendwas"
    
    {
    ...
    Körper der Klasse
    };
    
    //Initialisierung
    extern Klasse object1, object2
    
    #endif
    

    ich greife in zwei anderen datein(daten.cpp und IVPlotView.cpp) auf das Objekt zu und das scheint auch zu klappen, aber ich bekomme folgende Fehlermeldung:

    daten.obj : error LNK2001: unresolved external symbol "class Datenobject object2" (?object2@@3VDatenobject@@A)
    daten.obj : error LNK2001: unresolved external symbol "class Datenobject object1" (?object1@@3VDatenobject@@A)
    IVPlotView.obj : error LNK2001: unresolved external symbol "class Datenobject object1" (?object1@@3VDatenobject@@A)
    

    weis da jemand Rat?????



  • Mit einer extern-Deklaration erzeugst du keine Objekte. Du sagst dem Compiler nur, dass es diese Objekte irgenwo gibt. Wenn du aber in keiner Quellcodedatei diese Zeile auch ohne "extern" stehen hast, dann kann der Linker sie nicht finden, weil sie nirgendwo erzeugt werden.

    Und das sagt dir der Linker dann auch.


Anmelden zum Antworten