Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Инструменты разработчика _ CMake и библиотеки в библиотеке

Автор: ViGOur 5.6.2017, 11:51

Есть проект, с такой архитектурой:
- Device
--- Settings(library)
--- Connection (library)
--- Modules (library)

В проекте Settings используется дополнительная библиотека libSettings.
В проекте Connection используется дополнительная библиотека libConnection.
В проекте Modules используется дополнительная библиотека libModules.

Проекты Settings, Connection и Modules, собираются без ошибок, но проект Device собирается с ошибками вроде:
/usr/bin/ld: cannot find -lSettings
/usr/bin/ld: cannot find -lConnection
/usr/bin/ld: cannot find -lModules

И как только я добавлю в CMakelists.txt строчку:

link_directories( ${CMAKE_SOURCE_DIR}/Settings/lib/ )
и пути к другим либам все начинает работать.

Вопрос, как и с какими ключами собирать проекты Settings, Connection и Modules, чтобы не запрашивались пути к либам, которые они используют. По идее проекту Device и незачем об этом знать!

Автор: Iron Bug 6.6.2017, 4:18

по-моему, вот это решение наиболее близко к тому, что ты хочешь:
https://floooh.github.io/2016/01/12/cmake-dependency-juggling.html

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)