Как разделить одну переменную между двумя файлами .c?

Рассмотрим переменную abulo. Я пытаюсь разделить abulo между двумя файлами .c. Вот что я сделал --

  1. Создан а.ч. Этот файл содержит строку extern int abulo;
  2. a.c содержит такой оператор: int abulo = 0;
  3. в b.c. включен a.h. Тогда есть только функция kprintf, печатающая ваше значение.

Но когда я пытаюсь запустить код, он показывает мне такой вывод:

undefined reference to `abulo'

Пытался использовать идею приведенного здесь ответа - Как сделать Я делюсь переменными между разными файлами .c?

что я здесь делаю не так? Как избавиться от этой ошибки?


person Pavel    schedule 14.10.2014    source источник


Ответы (1)


Вы должны связать a.o при создании исполняемого файла. Пример:

cc -c a.c
cc -c b.c
cc a.o b.o -o executable
#  ^^^ this is important
person musiphil    schedule 14.10.2014