dlopen()搜索路径

12

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

2个回答

11
请查看 ldconfig 的 man 手册和文件: /etc/ld.so.conf

6

除了ld.so.conf提示之外:

如果您想确保特定库已经被dlopen,请将路径传递给dlopen,例如 dlopen("/some/path/to/lib.so", RTLD_LOCAL) 或者是 dlopen("./lib.so", RTLD_LOCAL),但不是 dlopen("lib.so", RTLD_LOCAL)

如果在Linux上,请阅读man页面dlopen(3)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接