有没有办法以编程方式找出 dlopen() 在哪些路径中搜索共享对象?我一直认为 dlopen() 只会查看 /lib 和 /usr/lib 但现在我已经看到在 Linux Mint 上,像 libglib-2.0.so 这样的几个核心组件位于完全不同的文件夹中,即 /rofs/lib/ i386-gnu-linux 和其他一些。有没有办法了解 dlopen() 将搜索共享对象的所有这些路径?我已经检查了环境变量 LD_LIBRARY_PATH 但它根本没有定义。
问问题
15038 次
2 回答
10
查看ldconfig
手册页和文件:/etc/ld.so.conf
于 2011-11-19T11:18:07.727 回答
6
除了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)
于 2011-11-19T12:03:36.083 回答