Linux下error while loading shared libraries的解决方法

1. 出现error while loading shared libraries的原因

1-1. 不存在该共享库,如果是这个原因,需要下载或者编译该共享库先了。

1-2. 存在该共享库,但是找不到或者共享库的不对

如果是第二种情况,请继续往下看。

2.原因分析

系统查看共享库的过程:首先查找 /etc/ld.so.cache文件,如果找不到就查找环境变量里的LD_LIBRARY_PATH的值,如果找到了就到对应的目录加载该共享库,如果找不到就报error while loading shared libraries错误了;

而/etc/ld.so.cache文件的内容是根据

/lib目录、

/usr/lib目录、

/etc/ld.so.conf(/etc/ld.so.conf文件包含/etc/ld.so.conf.d下所有conf文件)文件、

这三个的内容生成的。

3.解决方法

方法1:将你的共享库copy到/lib目录或者/usr/lib目录下,然后执行sudo ldconfig 来重新装载/etc/ld.so.cache文件

方法2:在ld.so.conf.d目录下创建一个conf文件(比如sudo vi test.conf),内容就是你共享库的路径,然后执行sudo ldconfig 来重新装载/etc/ld.so.cache文件

方法3:创建符号连接到/lib目录或者/usr/lib目录下,然后执行sudo ldconfig 来重新装载/etc/ld.so.cache文件。

举例说明:ln -s /home/test/xx.so /usr/lib/xx.so //如果是因为版本号不对,可以符号连接改为需要的版本号

方法4:就是在环境变量添加LD_LIBRARY_PATH的值了,这是在没有root权限的情况下使用了,否则一般我都不这样做。

附:我就是使用方法2,网上看了很多人在/etc/ld.so.conf文件里面直接添加共享库的路径,这样也一样,但是为什么不是在ld.so.conf.d目录下创建一个conf文件呢?因为/etc/ld.so.conf文件实际上就是包含ld.so.conf.d目录下的所有conf文件。并且感觉这样管理好多了。

时间: 2024-11-04 22:54:34

Linux下error while loading shared libraries的解决方法的相关文章

Linux中error while loading shared libraries错误解决办法

Linux中error while loading shared libraries错误解决办法 默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件,通常通过源码包进行安装时,如果不指定--prefix,会将库安装在/usr/local/lib目录下:当运行程序需要链接动态库时,提示找不到相关的.so库,会报错.也就是说,/usr/local/lib目录不在系统默认的库搜索目录中,需要将目录加进去. 1.首先打开 /etc/ld.so.conf 文件 2.加入动态库文件所在

cygwin运行git submodule init出错error while loading shared libraries的解决

installing the Devel\gettext package should solve your problem. git-submodule requires that. Unfortunately this is not marked as dependency. 附apt-cyg工具:https://code.google.com/p/apt-cyg/

linux下报错:error while loading shared libraries

linux执行bin程序报: error while loading shared libraries:libncurses.so.5: cannot open shared object file: No such file or directory 解决方法: yum -y install libncurses.so.5 安装这个库之后有可能报: error while loading shared libraries:libstdc++so.6: cannot open shared ob

Cloning EBS from Linux 5 to Linux 6 Fails: "Error While Loading Shared Libraries: libclntsh.so.10.1

SYMPTOMS  During clone Oracle Applications R12 from Linux 5 to Linux 6 the following error occurs in the apps tier: perl adcfgclone.pl appsTier 73% completed RC-50004: Fatal: Error occurred in ApplyAppsTier: StackTrace - java.lang.reflect.InvocationT

error while loading shared libraries: libluajit-5.1.so.2: cannot open shared 解决办法

一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory 原因一般有两个, 一个是操作系统里确实没有包含该共享库(lib*.so.*文件)或者共享库版本不对, 遇到这种情况那就去网上下载并安装上即可. 另外一个原因就是已经安装了该共

[转]"error while loading shared libraries: xxx.so.x" 错误的原因和解决办法

[转]"error while loading shared libraries: xxx.so.x" 错误的原因和解决办法 http://blog.csdn.net/sahusoft/article/details/7388617 一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared obje

error while loading shared libraries: xxx.so.x"错误的

一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory 原因一般有两个, 一个是操作系统里确实没有包含该共享库(lib*.so.*文件)或者共享库版本不对, 遇到这种情况那就去网上下载并安装上即可. 另外一个原因就是已经安装了该共

"error while loading shared libraries: xxx.so.x" 错

一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如: tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory 原因一般有两个, 一个是操作系统里确实没有包含该共享库(lib*.so.*文件)或者共享库版本不对, 遇到这种情况那就去网上下载并安装上即可. 另外一个原因就是已经安装了该共

error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such

启动zabbix_server出现如题错误,差点没晕死过去,从前一直没出现,这种错误其实工作上已经遇到过无数次了,但是每次的没有好好记录总结一些,导致每次遇到都需要傻乎乎的跑到网上->百度,方可解决.今天特地针对这个小问题写一篇错误记录博客,日后遇到方可快速查看. 执行命令 cd /usr/local/mysql/lib/ ll libmysqlclient.so 发现有  libmysqlclient.so -> libmysqlclient.so.18 于是 ln -s /usr/loca