Compile C program using dlopen and dlsym with -fPIC

前端 未结 3 892
-上瘾入骨i
-上瘾入骨i 2021-01-05 19:21

I am having a problem about a wrong symbol resolution. My main program loads a shared library with dlopen and a symbol from it with dlsym. Both the program and the library a

3条回答
  •  -上瘾入骨i
    2021-01-05 20:23

    I suspect that there is a clash between two global symbols. One solution is to declare a in the main program as static. Alternatively, the linux manpage mentions RTLD_DEEPBIND flag, a linux-only extension, which you can pass to dlopen and which will cause library to prefer its own symbols over global symbols.

提交回复
热议问题