
Ich versuche ein C-Programm aufzurufen, das den Wert für ein bestimmtes Schlüsselwort aus einer Konfigurationsdatei zurückgibt
Beim Versuch, das Programm aufzurufen, wird der folgende Fehler angezeigt:
**Testprintenv: error while loading shared libraries: libodbc.so.1: cannot open shared object file: No such file or directory**
Wir haben EasySoft zuvor installiert und wieder deinstalliert (alle Verzeichnisse entfernt).
Die folgenden Abhängigkeiten werden auf dem Linux-Rechner angezeigt
-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)
Wenn wir dasselbe Programm auf einer Solaris-Maschine ausprobieren, werden die Abhängigkeiten unterschiedlich angezeigt und ohne Fehler ausgeführt:
[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
Gibt es Erkenntnisse, warum die Abhängigkeit (libodbc.so.1) nur unter Linux angezeigt wird und wie das Problem behoben werden kann?
Antwort1
es scheint, dass die ODBC-Bibliothek nicht auf Ihrem Linux-System installiert wurde. Verwenden Sie das entsprechende Paketverwaltungssystem, um die Bibliothek hinzuzufügen. Hier sind ein paar Befehle, die für einige gängige Distributionen funktionieren würden:
für ein RPM-verwaltetes System wie Centos, Redhat oder Fedora:
sudo yum install unixODBC
für ein Debian-System wie Ubuntu oder Mint:
sudo apt-get install libodbc1