Обнаружение общей библиотеки

Я использую С++ в Linux. Я хочу динамически связать коллекцию неизвестных общих библиотек. Мне нужен мой код для обнаружения всех общедоступных функций, предоставляемых общей библиотекой, и строковых имен этих функций. Как выполнить эту задачу?


person Community    schedule 24.01.2009    source источник
comment
Нет смысла связывать этот неизвестный набор функций: вы не можете их вызывать (поскольку вы не знаете, какие параметры они ожидают), так что вы собираетесь делать с результатом dlopen()?   -  person Employed Russian    schedule 27.01.2009
comment
Итак, вы хотите знать, как работает утилита nm?   -  person Die in Sente    schedule 30.01.2009


Ответы (1)


Насколько я знаю, нет функции glibc для перечисления всех функций общедоступного интерфейса для файла .so. Вы можете обратиться к libelf, чтобы прочитать все символы из динамического файла. Libelf находится здесь http://www.mr511.de/software/. После того, как вы найдете символ, вы можете использовать dlopen и dlsym для его загрузки.

person Community    schedule 24.01.2009