出现error while loading shared libraries: xxx.so错误,一是操作系统里确实没有包含该共享库(lib*.so.*文件)或者共享库版本不对,二是虽然存在,但是程序按照默认共享库路径找不到该共享库文件。
1) 如果共享库文件安装到了/lib或/usr/lib目录下,那么需要执行一下/sbin/ldconfig命令,目的是更新/etc/ld.so.cache文件
2) 共享库文件不在/lib或/usr/lib目录下,可以有如下2种方法解决:
- 编辑/etc/ld.so.conf文件,在新的一行中加入库文件所在目录,执行ldconfig
- 在/etc/ld.so.conf.d/目录下新建任何以.conf为后缀的文件,在该文件中加入库文件所在的目录,执行ldconfig
3) 不想在/etc/ld.so.conf中加路径,或者是没有权限加路径。可以export一个全局变量LD_LIBRARY_PATH, 然后运行程序的时候就会去这个目录中找共享库。
export LD_LIBRARY_PATH=/usr/local/mysql/lib:$LD_LIBRARY_PATH,执行ldconfig
或者修改~/.bashrc或~/.bash_profile或系统级别的/etc/profile。