我有两个共享对象:A.so 和 B.so A.so 包含函数 add_check_2a 的定义
从 main.c 中的 main 函数,我使用 dlsym 在 B.so 中调用函数 add()。这个函数 add() 需要调用 A.so 中定义的函数 add_check_2a
交流:
int add_check_2a(int a,int b){
返回 (a+b);
}
在 Bc 文件中,我定义了如下内容:
extern int add_check_2a(int a, int b);
整数添加(){
返回 add_check_2a(10,5);
}
我指望 linux LAZY 绑定自动将函数调用绑定到 A.so 中的符号。
在 main 中,我在初始化期间打开了这两个共享对象。
主.c:
dlopen(A.so, RTLD_LOCAL | RTLD_LAZY);
dlopen(B.so, RTLD_LOCAL | RTLD_LAZY);
然后我使用 dlsym 在 B.so 中找到符号添加并使用函数指针调用函数。
我不想在 Bc 中做另一个 dlopen 并希望链接器以某种方式进行惰性绑定。
有什么建议么?
RGds萨潘