Почему только 1 из 5 моих библиотек статически связана с моей общей библиотекой (cmake)? - PullRequest
0 голосов
/ 27 февраля 2020

Я создаю библиотеку sharerd на windows с msvc компиляторами. Я ссылаюсь на несколько сторонних библиотек (у меня есть оба файла dll и lib для зависимостей). Проблема в том, что я пытаюсь вытянуть все зависимости в библиотеку, чтобы у меня был только один файл dll для экспорта в еще одну библиотеку. Однако в моей текущей настройке cmake цель dll работает только тогда, когда четыре из пяти зависимостей также присутствуют в одном каталоге.

Интересующая линия cmake:

target_link_libraries(sbnw ${LIBSBML_STATIC_LIBRARY} ${LIBSBML_EXTRA_LIBS})

Где

LIBSBML_STATIC_LIBRARY                  D:/libsbml/install-no-namespace/lib/libsbml-static.lib
LIBSBML_EXTRA_LIBS                      D:/libsbml/install-no-namespace/lib/libbz2.lib;D:/libsbml/install-no-namespace/lib/libiconv.lib;D:/libsbml/install-no-namespace/lib/libxml2.lib;D:/libsbml/install-no-namespace/lib/zdll.lib

(# for readibility 
LIBSBML_EXTRA_LIBS                      
    D:/libsbml/install-no-namespace/lib/libbz2.lib;
    D:/libsbml/install-no-namespace/lib/libiconv.lib; 
    D:/libsbml/install-no-namespace/lib/libxml2.lib;
    D:/libsbml/install-no-namespace/lib/zdll.lib)

${LIBSBML_STATIC_LIBRARY} статически связан с моей целью sbnw, тогда как остальные 4 этого не делают , Кто-нибудь знает почему?

...