小编Sak*_*Sak的帖子

dlopen - 未定义的符号错误

我正在使用dlopen在运行时加载共享库

dlopen("SharedLibarary1.so", RTLD_NOW | RTLD_GLOBAL);
Run Code Online (Sandbox Code Playgroud)

在该共享对象中,我引用另一个共享库"SharedLibarary2.so"中定义的const char*.

Executable和两个库都是使用-rdynamic构建的.

但是在使用dlopen时我仍然遇到运行时错误:"/ usr/lib/SharedLibarary1.so:undefined symbol"并指向错位的const char*有未定义的符号.

Whith GDB"info share"我可以看到第二个库没有在错误点加载.

如果我在第一个库之前在第二个库上执行dlopen,那问题怎么会消失.

有没有更好的方法来强制加载器为未解析的符号加载第二个库?

c c++ linux shared-libraries dlopen

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

c ×1

c++ ×1

dlopen ×1

linux ×1

shared-libraries ×1