Я настраиваю исходный код qgis, который создается с помощью cmake.
Он имеет исходное дерево со многими подкаталогами (с подкаталогами внутри них).
Все исходное дерево разделено на модули, такие как ядро, которое содержит основные компоненты ГИС, графический интерфейс, который заботится о графическом интерфейсе, приложение, которое заботится об основном приложении (содержащем main.cpp), а также другие модули.
Проблема в том, что я застрял с требованием, когда мне нужно получить доступ к статическому члену класса в другом модуле. если быть точным, какой-то член класса QgisApp в модуле Gui.
Таким образом, обычное включение qgisapp.h в один из .cpp модуля графического интерфейса дает мне неопределенную ссылку на мамбер, к которому я хочу получить доступ. Позже я включил .h и .cpp в файл CMakeLists.txt, который находится в графическом интерфейсе. корневой каталог модуля и снова запустил cmake, чтобы в файлах Makefile были соответствующие включения. h и .cpp, на которые есть ссылки в собственном файле CMakeLists.txt модуля приложения).
Итак, как я могу использовать член класса какого-то модуля в каком-то другом модуле, который создается с другим набором CMakeLists.txt, помещенным в соответствующий корневой каталог?
Этот вопрос конкретно не связан с qgis, но может встретиться с любым исходным деревом, которое похоже на то, что есть у qgis. Так что в основном это вопрос, связанный с Cmake.
Надеюсь, я смогу прояснить свою проблему.
Помощь будет оценена.
Спасибо.