nm -D показывает, что символ auth_class_names определен
No: он показывает, что auth_class_names
равен un , определенному в libcharon.so
.
libstrongswan предоставляет символ auth_class, но libcharon не ссылается на него.
Снова неверно: libcharon.so
действительно ссылается на символ.
ldd /usr/lib/libstrongswan.so
Это не , что вы хотите.Вы хотите ldd /usr/lib/libcharon.so
.
Скорее всего, ваша проблема в том, что ни libcharon.so
, ни основной исполняемый файл не связаны с libstrongswan.so
, поэтому при динамической загрузке libcharon.so
, libstrongswan.so
нигде не будетнайденный;следовательно, загрузка завершается неудачно с неопределенным символом.
Существует несколько возможных решений, упорядоченных от более правильных к более хакерским:
Ссылка libcharon.so
против libstrongswan.so
.Загрузка libcharon.so
загрузит все его зависимости (которые теперь будут включать libstrongswan.so
, и символ будет найден).
Ссылка charon
бинарная против libstrongswan.so
.
- Динамически загружать
libstrongswan.so
до загружать libcharon.so
. LD_PRELOAD=libstrongswan.so