Проблема линковки - ld multiple definition of
Не понимаю как решить данную проблему, у меня есть структура в файле main.h и нужно чтобы переменная данной структуры использовалась в нескольких модулях, для обращения к value. Но этого сделать не получается
Пример программы: main.c
#include <stdio.h>
#include "main.h"
void count();
int main(void)
{
name.value = 2;
printf("%d\n", name.value);
count();
return 0;
}
count.c
#include <stdio.h>
#include "main.h"
void count()
{
name.value = 5;
printf("%d\n", name.value);
}
main.h
struct Main {
int value;
} name;
Сборка:
gcc -c main.c
gcc -c count.o
gcc main.o count.o -o program
Понятно что name определен повторно, ноо мне надо использовать содержимое структуры Main в разных модулях. Как исправить данное поведение?