У меня есть simple_client_application, который использует simple_server (и [таким образом] simple_events) ) для создания простого клиентского приложения, объединяющего функциональные возможности библиотеки.
Все это отдельные проекты, имеющие свои собственные сборки, поскольку я намерен создать модульные, пригодные для повторного использования библиотеки для моих проектов.
Ниже вы найдете соответствующие фрагменты CMakeLists.txt упомянутых проектов:
simple_events/CMakeLists.txt
Код: Выделить всё
add_library(simple_events STATIC simple_events.cpp)
# some installation instructions
Код: Выделить всё
find_package(SimpleEvents REQUIRED) # works as expected
[...]
target_link_libraries(simple_server
PRIVATE Simple::simple_events
)
[...]
Код: Выделить всё
find_package(SimpleEvents REQUIRED)
find_package(SimpleServer REQUIRED)
[...]
target_link_libraries(simple_app PUBLIC Simple::simple_events Simple::simple_server)
[...]
Насколько я понимаю, поскольку simple_server приватно ссылается на simple_events, он не будет связан с simple_app транзитивно и не будет доступен для него. Таким образом, simple_app также находит и связывается с simple_events. Однако похоже, что где-то по пути ld находит повторяющиеся инструкции по созданию ссылок для simple_events, и я хочу знать, почему и как это исправить.
Я, конечно, Rubber уклонялась от GPT, но продолжала просить меня заверить, что simple_server ЧАСТНО связывается с simple_events, что просто не внушало мне уверенности в том, что он понял решение.
Буду благодарен за любую помощь, даже за ссылку. Спасибо.
Подробнее здесь: https://stackoverflow.com/questions/791 ... ty-linking
Мобильная версия