> Только начал вникать в динамическую подгрузку функции и тут вот такое...
>Ткните носом плз.
> Прога состоит из главной части(main) и плагина(libsmb.so),
>который должен динимически подгружаться.
>
> Вот с плагином проблемы. В плагине использую либу libsmbclient.
> Собираю я его так:
> g++ -shared -W1,-soname,libsmb.so.0 -o libsmb.so.0.0.1 smb.o
>
> Собирается без проблем, но (вот тут я ещё плохо разобрался) как
>я понимаю, в полученной библиотеке существуют только ссылки на функции из
>библиотеки libsmbclient, но не сами функции, т.к. при линковании главной
>проги сыпится множество ошибок о том, что символ не резолвиться, от этого
>легко избавиться если при линковании главной проги указать дополнительно
>-lsmbclient.
> Вот у меня и возник вопрос: можно ли так собрать мой
>плагин libsmb.so что бы в нём были не только ссылки на
>функции libsmbclient, но и сами функции? Т.е. что бы при сборке
>главной проги не приходилось использовать -lsmbclient?
Варианты:
1) Добавить -lsmbclient в ключи сборки рекомого плагина. libsmbclient.so
тогда будет автоматически грузиться при загрузке libsmb.so, при этом в
главной программе ссылаться на libsmbclient.so не требуется. Может
не получиться на некоторых антикварных ОС с кривыми линкерами.
2) Добыть *.o, из которых собирается libsmbclient.so, и залинковать
их в свою библиотеку. Жульничество, но работать будет.
>ЗЫ
> Кто-нибудь знет _менее_ документированную либу чем libsmbclient?
ACE. Документация как бы есть, но на наименее (IMHO) интересные
участки.
|