dlopen () путь поиска - PullRequest
       6

dlopen () путь поиска

6 голосов
/ 19 ноября 2011

Есть ли способ программно узнать, какие пути ищутся совместно используемыми объектами с помощью dlopen ()? Я всегда думал, что dlopen () будет искать только в / lib и / usr / lib, но теперь я видел, что в Linux Mint несколько основных компонентов, таких как libglib-2.0.so, находятся в совершенно разных папках, а именно в / rofs / lib / i386-gnu-linux и некоторые другие. Есть ли способ узнать все эти пути, через которые dlopen () будет искать общий объект? Я уже проверил переменную окружения LD_LIBRARY_PATH, но она не определена вообще.

Ответы [ 2 ]

8 голосов
/ 19 ноября 2011

посмотрите справочную страницу ldconfig и файл: /etc/ld.so.conf

2 голосов
/ 19 ноября 2011

В дополнение к подсказке ld.so.conf:

Если вы хотите убедиться, что для конкретной библиотеки dlopen -ед, укажите путь к dlopen, например, dlopen("/some/path/to/lib.so", RTLD_LOCAL) или, возможно, dlopen("./lib.so", RTLD_LOCAL) но не dlopen("lib.so", RTLD_LOCAL)

...