Linux程序运行时找不到动态链接库的原因
如果没在环境变量 LD_LIBRARY_PATH 上加上程序所需动态链接库的所在目录,那么运行这个程序时就会出现错误。
如下在执行 InitMySQLv1 程序时出现的错误:
#./InitMySQLv1
./InitMySQLv1: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
【解决办法】
用 find 命令查找 libmysqlclient.so.18 在哪个目录:
# find / -name "libmysqlclient.so.18"
/u01/app/mysql/lib/libmysqlclient.so.18
进入用户Home目录,打开.bash_profile文件,给环境变量 LD_LIBRARY_PATH 加上 libmysqlclient.so.18 的所在目录。
# cd ~ // 进入用户的Home目录
# vi .bash_profile // 用 v i 打开 .bash_profile 文件
如下图指示编辑 .bash_profile 文件并保存:
然后用户重新登入,再执行 InitMySQLv1 程序,没有错误。
问题解决!