sudo ldd 应用程序时 显示缺少库的解决方法

问题描述:

sudo ldd 应用程序时 显示缺少库。

 

分析:
如果ldd命令没有找到对应的共享库文件和其具体位置?

可能是两种情况引起的:

1)共享库没有安装在该系统中;

2)共享库保存在/etc/ld.so.conf文件列出的搜索路径之外的位置。

通常情况下,许多开源代码的程序或函数库都会默认将在即安装到/usr/local目录下的相应位置(如:/usr/local/bin 或 /usr/local/lib)以便于系统自身的程序或函数库相区别。而许多linux系统的/ect/ld.so.conf 文件中默认又不包含 /usr/local/lib 。因此出现安装了共享库,但是却无法找到共享库的情况。

解决办法:
检查/etc/ld.so.conf文件,如果其中缺少自己编译的被依赖的库的目录,就添加进去;
注意:在修改了/etc/ld.so.conf 文件或者在系统中安装了新的函数库之后,需要运行命令 ldconfig ,该命令用来刷新系统的共享库缓存,即 /etc/ld.so.cache 文件。为了减少共享库系统的库搜索时间,共享库系统维护了一个共享库so名称的缓存文件 /etc/ld.so.cache 。 因此,在安装新的共享库之后,一定要运行 ldconfig刷新该缓存。即:

第一步:

sudo vim /etc/ld.so.conf   //打开后 将缺少的被依赖的库的目录添加进去

 

第二步:

sudo /sbin/ldconfig   //使上述修改生效。

第三步:

sudo ldd camerademo   //查看应用程序依赖库

 =》所有依赖库均已找到 ok。

 注意:

有一点需要说明,添加到/etc/ld.so.conf文件中的搜索路径必须是so文件的直接父路径,不能是祖先路径。貌似ldd不会便利某路径下的子目录。

参考&&致谢:

https://blog.csdn.net/jinking01/article/details/108821039

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xw-何妨吟啸且徐行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值