Как C ++ компилировать статически управляемую библиотеку сторонних разработчиков, которая содержит другую библиотеку, которую другие используют в основном приложении - PullRequest
0 голосов
/ 04 ноября 2018

У меня есть 2 библиотеки сторонних разработчиков OSS, которые все используют библиотеку сторонних производителей, все они компилируются как STATIC.
Ради контекста, что у меня есть:
статический libssh -> использование статического openssl lib
статический libcurl -> использование статического openssl lib
Мое основное приложение, которое использует openssl static Теперь я компилирую libssh и libcurl как статические библиотеки, все они компилируются со статической версией openssl
Как я теперь понимаю, libcurl и libssh содержат статические ссылки openssl
Если это правда, у меня есть 2 openssl, встроенные в libssh и libcurl, которые также встроены в мое приложение, плюс еще один, который использует мое основное приложение.
У меня вопрос, как статически компилировать сторонние библиотеки, но заставить их использовать 1 копию статического openssl?
Я не хочу импортировать исходный код libssh libcurl в мое приложение, но статически связать их как отдельные файлы lib.

1 Ответ

0 голосов
/ 04 ноября 2018

Статическая библиотека - это всего лишь архив (это причина суффикса .a) объектных файлов. Они, безусловно, не содержат каких-либо своих зависимостей, поскольку на самом деле они не связаны при создании.

Если вы используете статические библиотеки, то вам явно необходимо также связать все зависимости библиотек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...