Ошибка привязки неопределенной ссылки Cmake

Я настраиваю исходный код qgis, который создается с помощью cmake.

Он имеет исходное дерево со многими подкаталогами (с подкаталогами внутри них).

Все исходное дерево разделено на модули, такие как ядро, которое содержит основные компоненты ГИС, графический интерфейс, который заботится о графическом интерфейсе, приложение, которое заботится об основном приложении (содержащем main.cpp), а также другие модули.

Проблема в том, что я застрял с требованием, когда мне нужно получить доступ к статическому члену класса в другом модуле. если быть точным, какой-то член класса QgisApp в модуле Gui.

Таким образом, обычное включение qgisapp.h в один из .cpp модуля графического интерфейса дает мне неопределенную ссылку на мамбер, к которому я хочу получить доступ. Позже я включил .h и .cpp в файл CMakeLists.txt, который находится в графическом интерфейсе. корневой каталог модуля и снова запустил cmake, чтобы в файлах Makefile были соответствующие включения. h и .cpp, на которые есть ссылки в собственном файле CMakeLists.txt модуля приложения).

Итак, как я могу использовать член класса какого-то модуля в каком-то другом модуле, который создается с другим набором CMakeLists.txt, помещенным в соответствующий корневой каталог?

Этот вопрос конкретно не связан с qgis, но может встретиться с любым исходным деревом, которое похоже на то, что есть у qgis. Так что в основном это вопрос, связанный с Cmake.

Надеюсь, я смогу прояснить свою проблему.

Помощь будет оценена.

Спасибо.


person ashishsony    schedule 15.04.2009    source источник


Ответы (1)


target_link_libraries должен делать что ты ищешь. Если это не сработает, не могли бы вы попробовать и опубликовать пример кода CMake?

person Mike McQuaid    schedule 26.07.2009