Две идеи. Во-первых, вы включаете DirectX_Engine.h
в Main.h
и Main.h
в DirectX_Engine.h
. Это, очевидно, не будет работать.
Во-вторых, int imRunning
включается в каждый файл .cpp, который включает Main.h
, и компилятор рассматривает его как определение. Затем приходит компоновщик и видит imRunning
, определенный в каждом из этих файлов, и не знает, что делать. Решение использует extern:
В Main.h
:
extern int imRunning;
В один из .cpp файлов:
int imRunning = 1;