有没有办法以编程方式找出dlopen()为共享对象搜索了哪些路径?我一直以为dlopen()只会查看/lib和/usr/lib,但现在我发现在Linux Mint上,libglib-2.0so等几个核心组件位于一个完全不同的文件夹中,即/rofs/lib/i386-gnu-linux和其他一些文件夹中。有没有办法知道dlopen()将搜索共享对象的所有这些路径?我已经检查了环境变量LD_LIBRARY_PATH,但它根本没有定义。
发布于 2011-11-19 19:18:08
查看ldconfig手册页和文件:/etc/ld.so.conf
发布于 2011-11-19 20:03:36
除了ld.so.conf提示之外:
如果要确保特定库是dlopen-ed,请将路径传递到dlopen,例如dlopen("/some/path/to/lib.so", RTLD_LOCAL)或dlopen("./lib.so", RTLD_LOCAL),但不传递dlopen("lib.so", RTLD_LOCAL)
如果是在Linux上,请阅读man页面dlopen(3)
https://stackoverflow.com/questions/8193640
复制相似问题