Это потому, что компилятор компилирует каждый файл .cpp
отдельно, создавая файл .obj
для каждого.Похоже, что ваш заголовок имеет что-то вроде:
int slider;
Когда он входит в каждый из ваших трех .cpp
файлов, вы получаете три копии переменной int slider
, так же, какесли вы объявили это в каждом файле .cpp
.Компоновщик жалуется на это, потому что у вас нет трех разных вещей с одним и тем же именем.
Что вы, вероятно, захотите сделать, так это изменить свой заголовочный файл следующим образом:
extern int slider;
Это говориткомпилятор, который где-то есть переменная slider
, но, возможно, не здесь, и позволяет компоновщику выяснить это.Затем в один .cpp
файл:
int slider;
дает компоновщику одну фактическую переменную для ссылки.