共享库即使存在也无法打开:找不到文件

时间:2014-10-24 23:31:10

标签: linux shared-libraries dynamic-linking

我正在尝试测试作为共享库提供给我的ODBC驱动程序。我已将共享库放入/ usr / local / lib并在/etc/odbcinst.ini中添加了一个条目,并在/etc/odbc.ini中添加了一个连接条目(DSN)

尝试使用isql命令测试此连接时,我得到以下内容

isql -v test
[01000][unixODBC][Driver Manager]Can't open lib '/usr/local/lib/splcODBC.so' : file not found

有趣的是,当我执行strace -o t isql -v test时,我在跟踪文件中看到以下信息:

open("/usr/local/lib/splcODBC.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 \262R\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=15473838, ...}) = 0
mmap(NULL, 13298832, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fe2065a9000
mprotect(0x7fe206fcd000, 2093056, PROT_NONE) = 0
mmap(0x7fe2071cc000, 442368, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xa23000) = 0x7fe2071cc000
mmap(0x7fe207238000, 130192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fe207238000
close(3)

似乎表明找到并成功打开了文件

文件信息如下:

ELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, BuildID[sha1]=0xa37555c3810ff5e5c78083139a3ca0232793a2e3, not stripped

有没有人有任何想法在这里发生了什么?

0 个答案:

没有答案