LINUX.ORG.RU

share library


0

0

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

anonymous

Линковать с -ldl , а использовать dlopen() - открыть либу вернуть дескриптор, а про остальные dl почитать, начиная с man dlopen.

a_kovalenko
()

большое спасибо - а что ещё можно почитать поэтому поводу?? - а то хочется динамически отдать это функциям и соответственно динамичемки пользоваться ресурсами какими надо - наподобие виндовских LoadLibrary и GetProcAddress

anonymous
()

Ну, вообще-то, я бы посоветовал использовать стандартные средства Линукса, вместо того, чтобы маяться с dlopen, dlsym и т.д.
Т.е. необходимо слинковать либу с параметром -shared и, как уже неоднократно оговаривалось в этом форуме -fPIC, таким образом, чтобы имя либы было libmy_lib.so, а потом, поместив ее, например в /usr/lib/ , без никаких dlopen и т.д. вызывать функции, которые содержит эта библиотека. В этом случае /lib/ld-linux.so самостоятельно позаботится о том, чтобы исполнимый файл, слинкованный с -lmy_lib, получил доступ ко всем вызываемым из этой библиотеки функциям.

Akan
()

А как быть если нужно использовать непонятное зараннее количество исользуемых библиотек - если жёстое прилинковывани не выход то что же делать?

anonymous
()

Ну а всё-таки --- в виндах можно подгрузить любую библиотеку в любой подходящий момент,вызвать функцию,выгрузить ---- и делов то

А тут??

Ведь хочеться на программу возложить интерактивное выполнение ф-ций (притом любых - делается(хочется сделать) для прикручивания всяких гтк и подобных)

Ведь самое оно наверное -- или проблему не так надо решать (а как-то ещё - как - я не знаю) ????

anonymous
()

Ну а всё-таки --- в виндах можно подгрузить любую библиотеку в любой подходящий момент,вызвать функцию,выгрузить ---- и делов то

А тут??

Ведь хочеться на программу возложить интерактивное выполнение ф-ций (притом любых - делается(хочется сделать) для прикручивания всяких гтк и подобных)

Ведь самое оно наверное -- или проблему не так надо решать (а как-то ещё - как - я не знаю) ????

anonymous
()

Сказали же dlopen. Это аналог LoadLibrary.

anonymous
()

да понял понял - извиняюсь - спасибо

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