我需要加载两个动态库,并且存在一个函数名冲突。所以我使用命令“objcopy --redefine-sym add=new_add libmy_test.so libmy_test_new.so”来修改符号名称。
但它仍然报告“错误:./libmy_test_new.so:未定义符号:new_add”
以下是我的测试代码。
void *lib_handle2 = dlopen("./libmy_test_new.so", RTLD_NOW);
if (NULL == lib_handle2) {
printf("Error: %s\n", dlerror());
goto err1;
}
fp_add f_add2 = dlsym(lib_handle2, "new_add");
if (NULL == f_add2) {
printf("Error: %s\n", dlerror());
goto err2;
}