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