Общая библиотека, библиотечная зависимость - PullRequest
2 голосов
/ 08 июля 2011

Можно ли предоставить общую библиотеку, которая связывается с другой общей библиотекой во время ее создания, прозрачную для конечного пользователя?

В качестве примера того, что я имею в виду:

Сборка общей библиотеки

g++ ... `pkg-config gtk+-2.0 --cflags` ... `pkg-config gtk+-2.0 --libs`

Требуемая сборка пользователя

g++ file.cc -lfoo

Где libfoo.so.0 - общая библиотека.

Кажется, я могу заставить это работать, только если пользовательская сборка включает pkg-config gtk+-2.0 .... Есть ли способ при создании общего объекта позволить конечному пользователю не беспокоиться о сторонних библиотеках, используемых в libfoo?

1 Ответ

3 голосов
/ 08 июля 2011

Если у вас есть общая библиотека libABC.so, которая ссылается на libXYZ.so, то
при создании libABC.so, вам нужно связать с libXYZ.so

 ld --shared -o libABC.so -L. -lXYZ

при компиляцииприложение,

gcc app.c -L. -lABC

не забудьте экспортировать путь к библиотеке

export LD_LIBRARY_PATH=.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...