Использование 2 разных общих библиотек для одного и того же исполняемого файла - PullRequest
0 голосов
/ 31 марта 2020

Мне нужен ваш совет по проекту, который меня сильно смущает.

Представьте, что я собираю двоичный файл, который должен быть связан с двумя сторонними библиотеками, давайте назовем их libA.so и libB.so. Проблема заключается в том, что эти две библиотеки были скомпилированы с другой версией libcrypto.

В моей системе у меня есть обе библиотеки libcrypto, но могу ли я использовать их одновременно? Есть ли способ сказать libA.so использовать /path/to/libA/needed/libcrypto.so?

Заранее большое спасибо!

1 Ответ

0 голосов
/ 31 марта 2020

Как правило, вы не можете загружать 2 версии библиотеки. Скажем, есть функция encrypt(), которая делает разные вещи в двух версиях (возможно, есть старая версия с ошибками и более новая исправленная версия). Какой encrypt() будет использоваться? Вы можете использовать такие вещи, как LD_LIBRARY_PATH, чтобы добавить некоторые каталоги в начале пути поиска, чтобы помочь выбрать, какую единственную версию libcrypto вы хотите загрузить. например, LD_LIBRARY_PATH=/path/to/libA/needed ./myprog

...