My psychic debugging abilities tell me that since you marked this as C ++, you are compiling C ++ code. I also assume that you used slightly different options to compile the A and B libraries, as a result of which their decoration of names and / or ABI were incompatible, and therefore the method could not be found.
Do you think letting the linker apply all common objects to your application, rather than using it dlopen? Then you will immediately recognize that a problem has occurred because the linker could not match the characters.
Alternatively, maybe Linux just doesn't like your links to circular libraries: can you reorganize libraries to eliminate circular dependency?
source
share