注册

Linux报 “error in loading shared libraries” 异常的原因以及解决办法

Linux系统中常常会遇到"error while loading shared libraries"或"error in loading shared libraries"这样的问题,主要原因是程序依赖的动态连接库没有正确加载或者缺少相关依赖。

一般情况下,当我们安装一个新的应用程序时,它会依赖一些动态链接库文件。如果这些文件被替换或者删除了,或者程序的依赖关系被破坏,程序就无法加载所需的库文件,因此会出现"error while loading shared libraries"错误。

解决该问题的方法主要有以下两种:

1.重新安装缺少的库

先通过以下命令查找所需的库文件 ldconfig -p | grep 库名称,如果找到了库文件,则重新安装缺少的库即可解决问题。例如,当你运行某程序时出现"libcrypto.so.1.1:无法打开共享对象文件:没有那个文件或目录"这个错误时,可以通过以下操作解决:

  • 通过以下命令查找所需的库文件:ldconfig -p | grep libcrypto,输出结果如下:

libcrypto.so.1.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1

  • 安装缺少的库类别:sudo apt-get install -y libssl-dev

2.修改环境变量

将所需的共享库文件路径添加到系统的LD_LIBRARY_PATH环境变量中也可以解决该问题。例如,当你运行某程序时出现"error while loading shared libraries: libxxx.so.xxx: cannot open shared object file: No such file or directory"错误时,可以通过以下操作解决:

  • 查找缺失的共享库文件并复制该文件的完整路径;

  • 因为不同系统的环境变量设置方式不同,此处以添加到/etc/environment文件的方式为例。用自己喜欢的编辑器打开文件并在文件末尾添加以下内容:

LD_LIBRARY_PATH="/usr/local/lib:$LD_LIBRARY_PATH"(其中"/usr/local/lib"为你复制的缺失共享库所在的路径)

  • 保存更改并退出文件编辑器,然后运行以下命令使环境变量生效:

source /etc/environment

以上就是Linux报"error in loading shared libraries"错误的原因与解决方法。在解决过程中,我们根据具体情况选择恰当的方法即可。