Связывание других библиотек в динамически загружаемые библиотеки

Я пишу библиотеку, которая динамически загружается другой программой. Эта библиотека использует некоторые библиотеки Boost (например, thread). Можно ли как-то заставить его работать без перекомпиляции рассматриваемой программы?

Если я использую ссылку флаги -lboost_thread, это не работает, потому что программа, которая использует эту библиотеку, должна будет также связать ту же библиотеку Boost. С помощью /usr/lib/libboost_thread.a также не работает, потому что .a файл не скомпилирован с -fPIC,

Я использую GCC под Linux.

1 ответ

Решение

Попытавшись еще раз, я обнаружил, что проблема не в том, что я описал. Библиотека не загружалась по какой-то другой причине. Я обнаружил, что связывание библиотеки с -lboost_thread работает, при следующих условиях:

  • GCC выдает предупреждения компилятора (возможно, потому что библиотеки из -L путь, которого нет в $LD_LIBRARY_PATH).
  • При загрузке библиотеки, она загружает Boost автоматически при условии, что может их найти.
Другие вопросы по тегам