当前位置: 技术问答>linux和unix
请教关于dlopen,动态库连接程序的输出函数
来源: 互联网 发布时间:2016-09-21
本文导语: 主程序 A 动态库 B A动态连接B的输出函数,已经实现。可是我同时也需要B连接A的输出函数,却怎么也实现不了。 在B中,我是这样写的代码 void* hModule = dlopen(NULL, RTLD_NOW);//此处用NULL表示打开本程序的句柄,不...
主程序 A
动态库 B
A动态连接B的输出函数,已经实现。可是我同时也需要B连接A的输出函数,却怎么也实现不了。
在B中,我是这样写的代码
void* hModule = dlopen(NULL, RTLD_NOW);//此处用NULL表示打开本程序的句柄,不知道是否正确?
hModule不为空,然后我通过dlsym(hModule, "函数名")的方式查找A输出函数的地址,可是返回地址却总是为空。
实在不清楚什么原因,请高手指点一下,多谢。。。。。
我目前正在做windows向linux移植的工作。。。。。
动态库 B
A动态连接B的输出函数,已经实现。可是我同时也需要B连接A的输出函数,却怎么也实现不了。
在B中,我是这样写的代码
void* hModule = dlopen(NULL, RTLD_NOW);//此处用NULL表示打开本程序的句柄,不知道是否正确?
hModule不为空,然后我通过dlsym(hModule, "函数名")的方式查找A输出函数的地址,可是返回地址却总是为空。
实在不清楚什么原因,请高手指点一下,多谢。。。。。
我目前正在做windows向linux移植的工作。。。。。
|
你编译动态库时,动态库咋知道A中的符号?除非你把A导入到B中。那么你的A运行时,要导入B,B又要导入A。。。