12

有没有办法以编程方式找出 dlopen() 在哪些路径中搜索共享对象?我一直认为 dlopen() 只会查看 /lib 和 /usr/lib 但现在我已经看到在 Linux Mint 上,像 libglib-2.0.so 这样的几个核心组件位于完全不同的文件夹中,即 /rofs/lib/ i386-gnu-linux 和其他一些。有没有办法了解 dlopen() 将搜索共享对象的所有这些路径?我已经检查了环境变量 LD_LIBRARY_PATH 但它根本没有定义。

4

2 回答 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 回答