2009-04-15 2 views
1

Я настраиваю исходный код qgis, который строится через cmake.Неопределенная ошибка ссылки ссылки Cmake

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

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

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

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

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

Этот вопрос конкретно не связан с QGIS, но можно встретить с любого исходного дерева, которое похоже на то, что QGIS has..So его связанную Cmake вопрос в основном ..

Надежда я в состоянии clearify мой проблема.

Справка будет оценена по достоинству.

Спасибо.

ответ

1

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

Смежные вопросы