dlopen 库路径语法

dlopen library path syntax

我正在为 android(尤其是 android M)编译库,我想问一下,当我使用 dlopen(); 函数时,库的正确语法是什么路径?

哪一个是正确的?

第一个:

libcameraHandle = ::dlopen("/system/lib/libseccameraadaptor.so", RTLD_LAZY);

所以路径是:/system/lib/libseccameraadaptor.so

第二个:

libcameraHandle = ::dlopen("libseccameraadaptor.so", RTLD_LAZY);

所以路径是libseccameraadaptor.so

我还发现了一些对于这个特定主题可能是很好的信息,但不太理解 look into cool hacks/opengl section

第二种语法在标准路径和LD_LIBRARY_PATH中指定的路径中搜索libseccameraadaptor.so。对于像这样将永远存在于 /system/lib 中的标准库,它并没有太大的区别。对于其他任何事情,如果库被移动到不同的地方,第二次调用可能会更健壮。