CMake и порядок зависимых ссылок разделяемых библиотек
У меня есть несколько небольших компонентов, которые я создаю как общие библиотеки для моего основного приложения. Давайте использовать пример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 прекрасно работает с этим, и мое приложение компилируется, но не может связать. Проблема в том, что б ссылки а. Если я предоставлю порядок библиотек при ссылке как
target_link_libraries(dummy b a)
Программа компилируется и ссылки просто отлично
Когда такая система начинает включать более сложные взаимозависимости библиотек, это становится невозможным, даже если зависимости являются ациклическими. Как мне управлять шагом связывания здесь? Есть ли хитрость при заказе библиотек для линковки в CMake?