У меня есть несколько небольших компонентов, которые я создаю как общие библиотеки для моего основного приложения. Давайте используем пример liba
и libb
. Каждый из них встроен в свой собственный подкаталог следующим образом:
add_library(liba SHARED a.cpp)
Затем в корневой папке проекта мне нужно привязать мое основное приложение к обоим.
include_directories(a)
include_directories(b)
add_executable(dummy dummy.cpp)
target_link_libraries(dummy a b)
CMake отлично работает с этим, и мое приложение компилируется, но не связывается. Проблема в том, что b ссылается на a. Если я поставлю порядок библиотек при компоновке как
target_link_libraries(dummy b a)
Программа компилирует и связывает только тонкие
Когда такая система запускает более сложную взаимосвязанную зависимость библиотек, она становится невозможной, даже если зависимости ацикличны. Как я могу управлять этапом ссылки здесь? Есть ли уловка для заказа библиотек для компоновки в CMake?