
Estou tentando invocar um programa C que retorna o valor de uma determinada palavra-chave de um arquivo de configuração
Ao tentar invocar o programa, ele exibe o erro abaixo:
**Testprintenv: error while loading shared libraries: libodbc.so.1: cannot open shared object file: No such file or directory**
Instalamos o EasySoft anteriormente e desinstalamos novamente (removemos todos os diretórios).
As dependências abaixo estão aparecendo na máquina 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)
Quando tentamos o mesmo programa na máquina Solaris, as dependências da máquina aparecem de forma diferente e são executadas sem nenhum erro:
[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
Alguma ideia de por que a dependência (libodbc.so.1) só está aparecendo no Linux e como resolver?
Responder1
parece que a biblioteca odbc não foi instalada no seu sistema Linux. use o sistema de gerenciamento de pacotes apropriado para adicionar a biblioteca. aqui estão alguns comandos que funcionariam para algumas distribuições comuns:
para um sistema gerenciado RPM como Centos, Redhat ou Fedora:
sudo yum install unixODBC
para um sistema Debian como Ubuntu ou Mint:
sudo apt-get install libodbc1