LINUX.ORG.RU

особенности dlopen


0

0

есть .so, который подключается с помощью dlopen. .so сама также использует функции из другой .so. что надо в этом случае сделать, чтобы все проходило нормально (сейчас при вызове dlopen не находятся символы из другой .so). в LD_LIBRARY_PATH прописывал.

также - чем можно смотреть в реалтайм какой набор дин. либ и в каком порядке грузится, порядок вызова функций из загруженной .so ?

anonymous

Ответ на: комментарий от Murr

А если библиотеки - плагины к программе? Юзеру будет неинтересно экспортировать переменные и все такое? Как поступить в таком случае?

OxiD ★★★★
()
Ответ на: комментарий от OxiD

Re:

В смысле плагины?

А в чем с ними проблемы? Просто в init функции so делаешь callback в основную программу а-ля register_plugin(bla-bla-bla).

Murr ★★
()

"таблица символов" программы представляет собой дерево (точнее ацикличный граф), в корне которого находятся имена главного модуля, а каждая ветвь - загруженный модуль с его именами. Поиск имени по умолчанию ведётся в узле текущего модуля и его подузлах, а так же узлах, построенных dlopen с флагом RTLD_GLOBAL. По умолчанию же узлы строятся с RTLD_LOCAL.

Подробнее - man dlopen.

loki
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.