Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > аналог dll в Linux


Автор: UnixBeginner 29.1.2006, 13:51
Есть ли в Linux динамичски подгружаемые библиотеки типа dll в Винде?
Если есть, то может примерчик, как их использовать, оформлять, компилировать.

Автор: Бонифаций 29.1.2006, 18:15
есть (немного все по другому, но идея похожая). Это файлы с расширением .so

Вам надо во время загрузки приложения их грузить? или хотите программно загружать/выгружать (типа плагинов)?

http://www.firststeps.ru/linux/r.php?6 дальше http://lists.unixcenter.ru/archives/mlug/2000-November/001145.html потом http://www.linux.ru/docs/english/ldp/HOWTO/Program-Library-HOWTO/shared-libraries.phtml
, http://www.linux.ru/docs/english/ldp/HOWTO/Program-Library-HOWTO/dl-libraries.phtml

Автор: UnixBeginner 29.1.2006, 19:27
Программно загружать/выгружать.
Почитать бы че-нибудь интересное об этом. А главное легко ли это потом переделать в *.dll чтобы в винде работало.

Автор: Empirik 29.1.2006, 23:14
Цитата(UnixBeginner @ 29.1.2006, 19:27)
Программно загружать/выгружать.
Почитать бы че-нибудь интересное об этом. А главное легко ли это потом переделать в *.dll чтобы в винде работало.

Есть такая библиотека, называется gmodule
пример её использования можно посмотреть тут:
http://antex.ru:8080/doc/gtk2/glib/glib-Dynamic-Loading-of-Modules.html

Автор: Бонифаций 30.1.2006, 12:07
Если надо кроссплатформенно, тогда посмотрите на QT также... там работа с .dll/.so унифицирована.

http://doc.trolltech.com/3.2/qlibrary.html

Автор: UnixBeginner 30.1.2006, 20:43
а мне не нужен Qt. Я использую GTK/Gtkmm - след пример по glib пришелся как нельзя кстати.

Автор: Empirik 30.1.2006, 22:02
Уважаемые форумчане, у меня есть к вам вопрос: как именно должна быть описанна функция в потгружаемой библиотеке, что бы её можно было вызвать с наружи.
Постараюсь, пояснить (задать вопрос по другому), какой сигнатурой должна обладать функция, что бы, при помещении её в .so, её можно было вызвать в основной программе (разумеется подгрузив данную библиотеку)?

Компилировать буду при помощи g++

smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)