有没有办法以编程方式找出dlopen()搜索共享对象的路径?我一直以为dlopen()只会查看/ lib和/ usr / lib但是现在我已经看到Linux Mint上的几个核心组件如libglib-2.0.so在一个完全不同的文件夹中,即在/ rofs / lib /中i386-gnu-linux和其他一些。有没有办法了解dlopen()将搜索共享对象的所有这些路径?我已经检查了环境变量LD_LIBRARY_PATH但它根本没有定义。
答案 0 :(得分:8)
查看ldconfig
手册页和文件:/etc/ld.so.conf
答案 1 :(得分:2)
除了ld.so.conf
提示:
如果您想确保特定的库dlopen
已编辑,请将路径传递给dlopen
,例如dlopen("/some/path/to/lib.so", RTLD_LOCAL)
或dlopen("./lib.so", RTLD_LOCAL)
但不是dlopen("lib.so", RTLD_LOCAL)