すみません。質問です
インクルードガードがうまくいきません

具体的には

/*main.cpp*/
#include <stdio.h>
#include "header.h"

int main(void)
{
printf("x = %d\n", x);
return 0;
}

/* func.cpp */
#include "header.h"

void func(void){ x = 5;}

/* header.h*/
#ifndef __HEADER_H__
#define __HEADER_H__

int x;

void func(void);
#endif

この状態でxについてのエラーLNK2005と1169が出てしまいます
色々とぐぐったりして試行してみましたが解決には至らなかったため、
御教授頂ければと思います