Как грамотно оперировать модулями проекта CMAKE & C++?
уважаемые. Редко обращаюсь за помощью, т.к. предпочитаю гуглить и искать самостоятельно.
Однако, столкнулся с трудностью. Писал небольшую игру на SDL2, задача по университету. Собственно говоря, у меня несколько модулей: gui.cpp, gui_loader.cpp, logic.cpp, key_pressed.cpp и т.п.
Меня интересует возможность использовать одну и туже переменную в разных файлах своего проекта. Пробовал объявлять в хедерах и подключать через #include в нужных мне файлах, однако выходило это крайне криво, вплоть до множественного переопределения (хотя #pragma once и #ifndef использовал).
С функциями все понятно. В одном файле пишешь функции одного модуля, пишешь его хедер и подключаешь его там, где это необходимо.
А как быть с переменными? Переписывать кучу текста нет желания. И хотелось бы услышать советы по грамотному проектированию модульного проекта. Как проектировать проект так, чтобы его модули были взаимо - заменяемы/используемы?