I'm trying to dynamically load a specific shared library using dlopen() in lazy mode.
There are of course unresolved symbols in the shared library, but the lazy mode supposed to ignore them.
It does ignore them on Linux, and the resolving actually happens once the symbols are used in run time.
But in Android, it doesn't work, although I use lazy mode, dlopen() fails because of unresolved symbols.
this is the code I'm talking about
retval = dlopen(LOADLIB, RTLD_LAZY);
What's going on ?
Usually the bionic linker looks for shared libs in cur dir, in system/lib and in vendor/lib. You can check if LD_LIBRARY path is set to include folder in which lib you are trying to link is located.