找不到相应的动态库 Error While Loading Shared Libraries, Cannot Open Shared Object File

在编译通过以后,但是在执行的时候需要动态库,动态库找不到的话,会出现下面的错误。
error while loading shared libraries: libev.so.4: cannot open shared object file: No such file or directory。
首先判断你的可执行程序需要哪些动态库,然后查看哪些动态库是这个程序找不到的!libev这个库编译好以后会自动添加到/usr/local/lib目录下,这个目录下有静态库和动态库

$ ls -l /usr/local/lib/libev*
-rw-r--r--. 1 root root 435770 Feb 22 15:20 /usr/local/lib/libev.a
-rwxr-xr-x. 1 root root 926 Feb 22 15:20 /usr/local/lib/libev.la
lrwxrwxrwx. 1 root root 14 Feb 22 15:20 /usr/local/lib/libev.so -> libev.so.4.0.0
lrwxrwxrwx. 1 root root 14 Feb 22 15:20 /usr/local/lib/libev.so.4 -> libev.so.4.0.0
-rwxr-xr-x. 1 root root 174059 Feb 22 15:20 /usr/local/lib/libev.so.4.0.0

然后查看自己的程序是需要哪些是动态库:
$ ldd /usr/local/bin/weighttp
        linux-vdso.so.1 =>  (0x00007fff251ff000)
        libev.so.4 => not found
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f8f1cc1e000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f8f1c88b000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f8f1ce49000)

解决的办法可以有几种,再次编译源代码,在安装的时候制定路径
$ ./configure –prefix=/usr

或者做一个软连接
$ sudo ln -s /usr/local/lib/libev.so.4 /usr/lib/libev.so.4
$ sudo ldconfig

或者直接拷贝相应的文件到相应的位置
$ sudo cp /usr/local/lib/libev.* /usr/lib
$ sudo ldconfig
或者设置动态库路径:
export LD_LIBRARY_PATH="/usr/local/lib"

还有一种办法就是:
$ cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/lib

or it might look completely different, with the exception of the last line. Run ldconfig to tell it to update the cache:

$ sudo ldconfig


任何一种办法应该就可以解决遇到的问题
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值