Dynamic Linking Error: libtdjson.so: cannot open shared object file: No such file or directory
Файлик libtdjson.so лежит в корне проекта. На локальной тачке (osx) все работает.
а ты как собирал?
я не собирал) скачал готовые
https://tdlib.github.io/td/build.html собири с сурса
собрал, та же ошибка
возможно не находит какую-то зависимость libtdjson.so, проверь ldd libtdjson.so
$ ldd libtdjson.so linux-vdso.so.1 (0x00007ffcbce4c000) libssl.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f62040fd000) libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f6203ee0000) libcrypto.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f6203ae3000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f62038df000) libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f62036c4000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f62033b9000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f62030b8000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f6202ea2000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f6202af7000) /lib64/ld-linux-x86-64.so.2 (0x00007f62054c8000) вроде все ок
https://www.man7.org/linux/man-pages/man3/dlopen.3.html здесь описан алгоритм поиска библиотеки попробуй указать абсолютный путь до libtdjson.so
подскажи как указать путь до файла ?
new TDLib('/path/to/libtdjson.so')
помогло, спасибо
Вызов метода client.login приводит к краху приложения с ошибкой Segmentation fault Не подскажешь почему так может быть?
Скорее всего, из-за несовместимости версий openssl Проверь версии в process.versions.openssl и ldd libtdjson.so
ldd ./libtdjson.so показывает: libssl.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f92eab6e000) а process.versions.openssl выводит 1.1.1d. Я так понимаю в этом проблема, да?
подскажи направление, как это решать
нужно либо пересобрать тдлиб с версией как у ноды, либо пересобрать ноду с версией как у тдлиб
для первого, скорее всего, еще придется скачать исходники нужной версии опенссл и собрать их
Обсуждают сегодня