Waiting~G

一起走过的日子

Archive for 七月, 2011

linux下动态连接库找不到解决方案

without comments

多少linux开发,测试人员在搭建环境的时候,对linux下连接动态库的问题非常恼怒;作为一面测试人员的我,对此也不例外;

后来在网上差了很多关于这方面的资料,寻找到了一些思路,并解决了自己的难题,并做点总结:

运行时使用非标准位置/usr/lib和/lib下的库的方式有三种:
(1) 设置$LD_LIBRARY_PATH=库所在目录(多个目录用:分隔),系统加载工具ld.so/ld-linux.so将顺序搜索变量指定的目录。例如#$LD_LIBRARY_PATH=/usr/local/mysql/lib ./test_mysql
(2) 以root身份把库路径加入/etc/ld.so.conf或在/etc/ld.so.conf.d中创建特定的.conf文件,然后运行ldconfig更新/etc/ld.so.cache。例如:在/etc/ld.so.conf.d下创建文件mysql.conf写入/usr/local/mysql/lib
(3) 另一种办法就是把需要的库copy到/usr/lib或/lib,但这不是建议的方法,特别是尽量避免copy发到/lib。但这种方法可以在编译时免去用-L选项。

共享库搜索动态连接库的顺序一般是$LDLIBRARY_PATH,/etc/ld.so.cache, /usr/lib, /lib

具体案例:在运行python的时候,提示找不到ImportError: libmysqlclient.so.15: cannot open shared object file: No such file or directory

解决方案:1.locate libmysqlclient.so.15//找出系统动态链接库libmysqlclient.so.15的位置

                     2.使用root用户把动态链接库libmysqlclient.so.15拷贝到目录/sur/lib下或者是/lib下;

简单的两部就解决了问题。

Read the rest of this entry »

Written by Skyma

七月 7th, 2011 at 1:49 上午

Posted in 学.Linux