Неопределенная ссылка на ссылку Cmake - PullRequest
1 голос
/ 15 апреля 2009

Я настраиваю исходный код 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 ..

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

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

Спасибо.

1 Ответ

1 голос
/ 26 июля 2009

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

...