
Я пытаюсь вызвать программу на языке C, которая возвращает значение для заданного ключевого слова из файла конфигурации.
При попытке вызвать программу отображается следующая ошибка:
**Testprintenv: error while loading shared libraries: libodbc.so.1: cannot open shared object file: No such file or directory**
Мы уже устанавливали EasySoft и удаляли его обратно (удаляли все каталоги).
Ниже показаны зависимости на машине Linux.
-bash-4.1$ ldd Testprintenv
linux-vdso.so.1 => (0x00007fffc0bdb000)
libodbc.so.1 => not found
libodbcinst.so.1 => not found
libc.so.6 => /lib64/libc.so.6 (0x000000397b200000)
/lib64/ld-linux-x86-64.so.2 (0x000000397ae00000)
При попытке запустить ту же программу на машине Solaris зависимости отображаются по-разному и выполняются без ошибок:
[Testuser]$ ldd Testprintenv
libsocket.so.1 => /lib/libsocket.so.1
libnsl.so.1 => /lib/libnsl.so.1
libc.so.1 => /lib/libc.so.1
libmp.so.2 => /lib/libmp.so.2
libmd.so.1 => /lib/libmd.so.1
libscf.so.1 => /lib/libscf.so.1
libdoor.so.1 => /lib/libdoor.so.1
libuutil.so.1 => /lib/libuutil.so.1
libgen.so.1 => /lib/libgen.so.1
libm.so.2 => /lib/libm.so.2
/platform/SUNW,SPARC-Enterprise/lib/libc_psr.so.1
Есть ли понимание, почему зависимость (libodbc.so.1) отображается только в Linux и как ее устранить?
решение1
похоже, что библиотека odbc не установлена в вашей системе Linux. используйте соответствующую систему управления пакетами, чтобы добавить библиотеку. вот несколько команд, которые будут работать для некоторых распространенных дистрибутивов:
для системы, управляемой RPM, такой как Centos, Redhat или Fedora:
sudo yum install unixODBC
для системы Debian, такой как Ubuntu или Mint:
sudo apt-get install libodbc1