Как загрузить общую библиотеку без загрузки ее зависимостей?
Скажи у меня есть библиотекаlibfoo.so.1
, который зависит (согласноldd
) наlibbar.so.1
, Тем не мение,libbar.so.1
в данный момент недоступен Мое приложение должно вызывать функцию вlibfoo.so.1
который нет требуетlibbar.so.1
совсем.
Есть ли способ загрузитьlibfoo.so.1
разрешите символ функции и затем вызовите его, не имеяlibbar.so.1
удовлетворить зависимость? Это'это случай "Я знаю что яя делаю, просто дай мне сделать это уже, Я пробовал флаг RTLD_LAZY, но он все еще пытается загрузитьlibbar.so.1
библиотека передне загрузка символов.
РЕДАКТИРОВАТЬ
Вот'Точная ситуация.
У нас есть 3 игрока:
libbar.so.1
общая библиотека, расположенная не в путиLD_LIBRARY_PATH
или жеldconfig
и чьи зависимости все решеныlibfoo.so.1
общая библиотека, расположенная в другом каталоге, чемlibbar
, но который зависит отlibbar
, Во время выполнения,libfoo
будет знать, где найти.libbar
App
, двоичное приложение, которое нужно загрузитьlibfoo
в какой-то момент во время выполнения.App
Безразлично»не знаю, где найтиlibbar
но знает чтоlibfoo
знает. Что я'я пытаюсь достичь, имеет функцию инициализации вlibfoo
который бы просто изменилсяApp
текущий рабочий каталог, гдеlibbar
находится, чтобы окончательно разрешить все зависимости и сделать всех счастливыми.
libfoo
будутв конце концов нужно называть вещи вlibbar
, только не в этой функции инициализации. Я нея думаю, что создание заглушки будет работать, так как символы в конечном итоге должны будутреальный функции.