Mehrfach definition in Headerdatei verhindern
-
Hallo zusammen,
ich habe mir ne Header Datei geschrieben in der ich Globale Variablen definiere. Beim Compilieren erscheint keine Fehlermeldung, aber wenn ich das Programm ausführen will, erscheint die Meldung
"error LNK2005: "struct Pos * Pos_MenueTaste" (?Pos_MenueTaste@@3PAUPos@@A) already defined in Global.obj" und die Meldung "emulatorDbg/Touch_V1.exe : fatal error LNK1169: one or more multiply defined symbols found".Ich dachte eigentlich, dass das #ifndef eine mehrfach definieren verhindert.
Meine Header Datei sieht folgendermaßen aus:
/*- Preprocessor directives and compiler switches -------------------------*/ #ifndef __Global_H__ #define __Global_H__ // include once only ... //-------------------------------------------------------------------------- //define's //Menütasten #define MENUE_TASTE_LUEFTER 0 #define MENUE_TASTE_BLASROHR 1 #define MENUE_TASTE_BOGENGLAETTER 2 #define MENUE_TASTE_UEBERSICHT 3 //Funktionstasten #define FKT_TASTE_ABWAHL 0 #define FKT_TASTE_SUMME 1 #define FKT_TASTE_UP 2 #define FKT_TASTE_DOWN 3 //--------------------------------------------------------------------------- //Strukturen //Struktur zum Speichern von Positionen z.B. Bitmaps (linke obere Ecke) typedef struct { unsigned int top; unsigned int left; } Pos; Pos Pos_MenueTaste[3]; Pos Pos_FktTaste[3]; void InitGlobal (); #endif //__Global_H__Weis jemand was ich falsch mache oder wie ich es besser machen kann.
Gruß
spacehelix
-
global.h
//... extern Pos Pos_MenueTaste[3]; extern Pos Pos_FktTaste[3]; //...globals.cpp
#include "global.h" //... Pos Pos_MenueTaste[3]; Pos Pos_FktTaste[3]; //...
-
Hallo ssm,
Vielen Dank für die Hilfe, es Funktioniert jetzt.
Gruß
spacehelix