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

Antworten auf die Frage(3)

Ihre Antwort auf die Frage