extern int a_sample_var;
Сообщает компилятору: int
с именем a_simple_var
определен где-то еще (подумайте о ключевом слове extern
: это сокращение для external
, что означает "где-то еще"). Просто оставьте там заполнитель и подождите, пока компоновщик не найдет его!
Что ж, если вы делаете это в каждом файле cpp
(включая заголовок), то все плачут по поводу определения (предоставляя объявление), но не с кем дать определение. Помните, что формулировка здесь, определения и декларации - это разные вещи .
В одном файле cpp
вы должны дать определение a_simple_var
. Просто удалите extern
:
int a_sample_var; // Initialize with 0
или
int a_sample_var = 1; // Initialize with 1.
Эти два правильных определения.