动态库的制作与使用及 动态库加载失败解决

加载动态库时有时会出现error while loading shared libraries:libcalc.so:可以通过lld命令查看动态库的依赖关系,发现libcalc.so时not found

原因

查找的优先级是DT_RPATH->LD_LIBRARY_PATH->/etc/ld.so.cache->/lib/,/usr/lib

找不到一个优先级顺位延

所以需要把动态库的路径加载进去

解决方法

一:配置环境变量

把libcalc.so所在的路径配置到环境变量LD_LIBRARY_PATH中去(通过pwd查看绝对路径)

但是这个环境变量只是在这个终端中配置的,当关闭终端时,环境变量就消失了,所以需要配置永久的环境变量

(1)用户级别的配置

进入home桌面,配置.bashrc文件,在文件中在最后一行新开一行加上绝对路径,然后更新文件,在重回,ldd发现可以了

(2)系统级别的配置

使用 sudo vim /etc/profile 一样在最后一行插入那个export(省略了)

然后再source /etc/profile 更新一下

在运行main又可以了

二、修改etc/ld.so.cache文件

不能直接打开这个文件  通过sudo vim /etc/ld.so.conf间接修改

直接把路径粘贴在这

然后直接更新  sudo ldconfig

就ok了

其实也可以放到/lib/和/usr/lib中但是里面自带的文件太多了,可能会发生修改系统文件,不推荐

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值