我正在使用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,那问题怎么会消失.
有没有更好的方法来强制加载器为未解析的符号加载第二个库?