动态库链接动态库运行问题

8 篇文章 0 订阅

问题

liba.so包含函数符号abc,libb.so里面又调用了函数abc。程序运行的时候如果普通dlopen会报错,libb.so无法找到符号abc。

解决

dlopen的时候参数加入RTLD_GLOBAL即可。下面是man中的解释,就是针对这种问题。一个动态库需要的符号在另一个动态库中定义,非常不提倡!但有时候动态库不是你做的,你没有办法去修改,也只能这么去做保证程序的运行。

RTLD_GLOBAL
              The  symbols  defined  by  this shared object will be made available for symbol resolution of subsequently
              loaded shared objects.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值