
我正在嘗試調用一個 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
您的 Linux 系統上似乎尚未安裝 odbc 函式庫。使用適當的套件管理系統來新增庫。以下是一些適用於某些常見發行版的指令:
對於 Centos、Redhat 或 Fedora 等 RPM 管理的系統:
sudo yum install unixODBC
對於 Ubuntu 或 Mint 等 Debian 系統:
sudo apt-get install libodbc1