我们在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
但是仍然有相同的错误。
知道发生了什么吗?
致谢。
答案 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