【发布时间】:2012-02-06 16:02:07
【问题描述】:
我正在寻找一种可移植 (POSIX) 方法来确定使用 dlopen() 打开的库的路径。 dl_iterate_phdr() 和 dladdr() 等函数不可移植。
一些man 页面详细说明了dlopen() 查找要打开的库所采用的路径(ld.so.cache、LD_LIBRARY_PATH、/lib、/usr/lib,...),因此请检查所有这些目录 可能是可能的,但不可移植。例如,在 Linux 下,我需要一种解析 ld.so.cache 的方法,但在 Mac OS X 下,没有这样的概念。
请查看previous question 了解我为什么要这样做的详细信息,因为在一般情况下使用dlopen 是不明智的。
【问题讨论】:
标签: c++ c posix shared-libraries dlopen