Linux程序运行时找不到动态链接库的原因

时间:2021-01-07 15:48:26
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 文件并保存:

Linux程序运行时找不到动态链接库的原因

然后用户重新登入,再执行 InitMySQLv1 程序,没有错误。

问题解决!