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

问题描述 投票:0回答:1

我们在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.1,libodbcinst.so.2位于libodbcinst.a中。

ar -X32 -t libodbcinst.a

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

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

但仍然有同样的错误。

知道发生了什么事吗?

问候。

odbc aix unixodbc
1个回答
0
投票

你应该有一个名为libodbcinst.so.1 whithin /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
© www.soinside.com 2019 - 2024. All rights reserved.