Das Erstellen globaler Variablen führt zu einem Linkerfehler
Ich habe eine MFC-Anwendung AVT_testapp, und in der Header-Datei (AVT_testappDlg.h) versuche ich, eine Variable außerhalb aller Funktionen, Klassen usw. zu erstellen, um sie global zu machen. Wann immer ich das versuche, versuche ich esint x = 7
) Erhalte ich den Fehler:
1>AVT_testappDlg.obj : error LNK2005: "int x" (?x@@3HA) already defined in
AVT_testapp.obj
1>..\..\bin\x64\Debug\AVT_testapp.exe : fatal error LNK1169: one or more
multiply defined symbols found
Alles, was ich auf Google gefunden habe, sagt "nur Header-Guards hinzufügen". AVT_testappDlg hat 6 # include's und jeder von ihnen hat Header Guards.
Was kann diese Fehler beim Erstellen globaler Variablen noch verursachen?
BEARBEITEN: Hier ist der Anfang meiner Header-Datei,
#pragma once
#include "../../src/CoreUtils/nierr.h"
#include "..\..\src\CoreUtils\StringHelpers.h" //includes windows.h
#include "afxwin.h"
#include "afxcmn.h"
#include "IFrameObserver.h"
#include "c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Include\GdiPlusHeaders.h"
//#include <fstream>
//#include <windows.h>
int x = 7;
using namespace AVT::VmbAPI;
//////////////////////////////////////////////////////////////////////////
////////// MyObserver class ///////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
class MyObserver : public IFrameObserver
{
private:
MyObserver( MyObserver& );
MyObserver& operator=( const MyObserver& );
public:
VmbUchar_t* imageData;
//...
//...
//...
//...
//that's the end of the relevant stuff