- 库文件不存在 这种情况一般是因为所需要的包没装,只要安装相应的包就可以解决
- 存在而系统不知道 这种情况一般出现在自己编译软件时候 确保库文件所在的路径已加入系统,在/etc/ld.so.conf文件中设置 用命令ldconfig更新数据库
总的来说是由于开源软件的动态链接库没有放在程序寻找的地方,尤其是连个开源软件相互协作运行的时候,例如mysql+php,mysql+sphinx。
那这样怎么办呢?
先来看看linux寻找动态链接库的顺序吧!
1.编译目标代码时指定的动态库搜索路径;
2.环境变量LD_LIBRARY_PATH指定的动态库搜索路径;
3.配置文件/etc/ld.so.conf中指定的动态库搜索路径;
4.默认的动态库搜索路径/lib;
5.默认的动态库搜索路径/usr/lib。
如果出现没有寻找到动态链接库的是时候,我们可以根据以上五个步骤去尝试解决。
1.在编译原代码的时候
./configure --help 查看一下是不是可以在编辑的时候指定lib目录和include目录
2.可以通过export将LD_LIBRARY_PATH指定为你需要搜索的路径。
3.如果要通过第三种方式去修改那么
vi /etc/ld.so.conf
在此文件中写入你需要用的动态链接库的位置
例如mysql就是/usr/local/mysql/lib/mysql
然后
ldconfig
4.在您所需要装的软件中寻找到那个动态链接库,放入到目录/lib和/usr/lib
......