Проблема линковки - 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 в разных модулях. Как исправить данное поведение?


Ответы (0 шт):