在AIX上配置unixODBC-驱动程序管理器无法打开lib

时间:2018-09-17 18:41:43

标签: odbc aix unixodbc

我们在Aix 7.1上安装了unixODBC以与Oracle连接。当我们尝试使用isql测试连接时,我们收到以下错误:

isql -v ORACLE
[01000][unixODBC][Driver Manager]Can't open lib  '/u01/app/oracle/product/11.2.0.4/client_1/lib/libsqora.so' : file not found
[ISQL]ERROR: Could not SQLConnect

之后,我们在libsqora.so上运行ldd命令以进行验证:

/u01/app/oracle/product/11.2.0.4/client_1/lib/libsqora.so needs:
     /usr/local/lib/libodbcinst.a(libodbcinst.so.1)
ar: 0707-109 Member name libodbcinst.so.1 does not exist.
dump: /tmp/tmpdir26149042/extract/libodbcinst.so.1: 0654-106 Cannot open the specified file.
     /u01/app/oracle/product/11.2.0.4/client_1/lib/libclntsh.so
     /usr/lib/libc.a(shr_64.o)
     /usr/lib/libpthreads.a(shr_xpg5_64.o)
     /usr/lib/libdl.a(shr_64.o)
     /usr/lib/libperfstat.a(shr_64.o)
     /usr/lib/libodm.a(shr_64.o)
     /usr/lib/libc.a(aio_64.o)
     /unix
     /usr/lib/libcrypt.a(shr_64.o)
     /usr/lib/libcfg.a(shr_64.o)
     /usr/lib/liblvm.a(shr_64.o)
     /usr/lib/libcorcfg.a(shr_64.o)
     /usr/lib/libsrc.a(shr_64.o)

如您所见,找不到libodbcinst.so.1文件。我们使用下面的命令查看了libodbcinst.a,而libodbcinst.so.2不在libodbcinst.so.1内。

ar -X32 -t libodbcinst.a

因此,我们尝试使用以下方法创建链接:

ln -s libodbcinst.so.1 libodbcinst.so.2

但是仍然有相同的错误。

知道发生了什么吗?

致谢。

1 个答案:

答案 0 :(得分:0)

您应该在libodbcinst.so.1中有一个名为/usr/local/lib/libodbcinst.a的64位共享对象。我建议你这样做

mkdir -p /tmp/workplace
cd /tmp/workplace
cp -p /usr/local/lib/libodbcinst.a /usr/local/lib/libodbcinst.bak

ar -X64 x /usr/local/lib/libodbcinst.a libodbcinst.so.2
mv libodbcinst.so.2 libodbcinst.so.1
ar -X64 rcs /usr/local/lib/libodbcinst.a libodbcinst.so.1