Variablen bereits definiert, error LNK2005 ist die Folge.



  • Hallo,

    in meinem Projekt gibt es eine globals.h, dort stehen alle globalen Variablen drinne.

    Ich versuche den Aufbau zu beschreiben:

    globals.h
    (inhalt einfache Dinge wie int beispiel;)

    A.h (beinhaltet globals.h und B.h)
    B.h (beinhaltet globals.h)
    main.cpp (beinhaltet A.h)

    Natürlich sind alle Header so aufgebaut:
    #ifndef header_h
    #define header_h

    #endif

    Jetzt kommen die Fehlermeldungen

    **
    main.obj : error LNK2005: "struct HWND__ * hwnd" (?hwnd@@3PAUHWND__@@A) bereits in A.obj definiert

    main.obj : error LNK2005: "struct tagWNDCLASSEXA winclass" (?winclass@@3UtagWNDCLASSEXA@@A) bereits in A.obj definiert

    main.obj : error LNK2005: "struct _DIMOUSESTATE mousestate" (?mousestate@@3U_DIMOUSESTATE@@A) bereits in A.obj definiert

    main.obj : error LNK2005: "unsigned char * keystate" (?keystate@@3PAEA) bereits in A.obj definiert

    B.obj : error LNK2005: "struct HWND__ * hwnd" (?hwnd@@3PAUHWND__@@A) bereits in A.obj definiert

    B.obj : error LNK2005: "struct tagWNDCLASSEXA winclass" (?winclass@@3UtagWNDCLASSEXA@@A) bereits in A.obj definiert

    B.obj : error LNK2005: "struct _DIMOUSESTATE mousestate" (?mousestate@@3U_DIMOUSESTATE@@A) bereits in A.obj definiert

    B.obj : error LNK2005: "unsigned char * keystate" (?keystate@@3PAEA) bereits in A.obj definiert
    **

    Wie wird sowas gelöst 😞 ?



  • Globale Variablen müssen in einer cpp-Datei definiert und in Header deklariert werden, z.B.:

    //cpp
    int a;
    
    //h
    extern int a;
    


  • Es scheint zu gehen, vielen dank!


Anmelden zum Antworten