Во-первых, похоже, что вы пытаетесь объявить его статическим в C-файле, который является старым C-способом обозначения внутренней (файловой) связи. Это не соответствует вашей цели сделать его глобальным.
Учитывая, что статический элемент удален, вам нужен только атрибут в файле C: объявление extern эффективно говорит: «Я хочу использовать это имя, когда вы, наконец, узнаете его адрес, замените его здесь». Другими словами, как только адрес назначен в точке определения в C-файле, ваш extern будет символически указывать на этот же адрес.