如果使用自己手动生成的动态链接库.so文件,但是这个.so文件,没有加入库文件搜索路劲中,程序运行时可能会出现找不到动态链接库的情形。
可以通过ldd命名来查看可执行文件依赖的动态链接库,如下(其中D为可执行程序):
lijian@li007lee:~/bin$ ldd ../lib/libsqlite3odbc.so
linux-gate.so.1 => (0xb7794000)
libsqlite3.so.0 => not found
libodbcinst.so.2 => /home/lijian/lib/libodbcinst.so.2 (0xb7740000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7590000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb758b000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb756f000)
/lib/ld-linux.so.2 (0xb7795000)
其中的
libsqlite3.so.0 cannot found。
解决这个问题:
(1)在系统中查找这个文件(当然要保证系统中已经有这个.so文件,只是查找路径没有设置正确而已):
sudo find / -name
libsqlite3.so.0
结果:/usr/local/lib/
libsqlite3.so.0
(2)将.so文件路径的目录添加到/etc/ld.so.conf
sudo vim /etc/ld.so.conf
文件末尾新添加一行,
/usr/local/lib/libsqlite3.so.0
(3)使得修改生效
sudo /sbin/ldconfig
这样就不会有那个找不对.so文件的错误啦。
阅读(10188) | 评论(0) | 转发(0) |