Каких еще символов ему не хватает?
Мне досталась некая негодная программа, которая распространяется в бинарном виде и носит с собой все необходимые библиотеки. Соответственно, есть каталог, где все это свалено в одну кучу, и он, конечно, прописан в LD_LIBRARY_PATH:
$ ls -1
libQt5Core.so.5
libQt5DBus.so.5
libQt5Gui.so.5
libQt5Network.so.5
libQt5WebSockets.so.5
libQt5Widgets.so.5
libQt5XcbQpa.so.5
libQt5Xml.so.5
libcrypto.so.1.0.0
libcurl.so.4
libssl.so.1.0.0
libz.so.1
...
executable
plugins
При запуске executable
в виртуалке с Ubuntu-22.04 я получаю список ошибок вида:
qt.network.ssl: QSslSocket: cannot resolve CRYPTO_num_locks
...
qt.network.ssl: QSslSocket: cannot resolve SSL_library_init
...
Все эти функции есть в libcrypto.so.1.0.0 и libssl.so.1.0.0, но сами libcrypto и libssl не фигурируют в выводе ldd
ни для executable, ни для прочих бинарников. Более того, я не вижу этих недостающих символов в выводе nm -uD
и objdump -T
.
Эта же самая программа нормально запускается в контейнере podman с точно такой же убунтой.
Как понять что вообще здесь происходит?