Создание динамически загружаемых библиотек Linux с использованием Eclipse - PullRequest
2 голосов
/ 04 июня 2009

Я пишу программу на C ++ с использованием Eclipse. Я хочу скомпилировать его как библиотеку для Linux, что-то вроде DLL в Windows. Как я могу это сделать? Знаете ли вы какие-либо учебные пособия о том, как создаются библиотеки?

Я просто хочу понять, что это аналог DLL для Linux и как его создать. Буду благодарен за небольшой пример.

Ответы [ 3 ]

9 голосов
/ 04 июня 2009

В Linux эквивалентами DLL являются (в любом случае) общие объекты (.so).

Вам нужно сделать что-то вроде этого:

$ g++ -c -fPIC libfile1.cpp
$ g++ -c -fPIC libfile2.cpp
$ g++ -shared -o libyourlib.so libfile1.o libfile2.o

Взгляните на некоторые проекты библиотек C ++ с открытым исходным кодом для получения дополнительной информации. GTKMM является одним из них.

Конечно, вместо того, чтобы компилировать все вручную, настоятельно рекомендуется использовать make file или IDE (например, Eclipse с CDT *). 1017 * или KDevelop или { выберите свой любимый здесь }), который создаст его для вас за кулисами.

6 голосов
/ 04 июня 2009

В мире UNIX / Linux DLL называются shared libraries и обычно имеют расширение .so или .o.

См. Linux HOWTO на общих библиотеках.

0 голосов
/ 05 июня 2009

Вы можете изменить видимость символов по умолчанию. Это может улучшить производительность. Проверьте GCC wiki запись на эту тему.

Существует также статья , написанная Ульрихом Дреппером в 2006 году, в которой описан правильный способ реализации динамических общих объектов в системах UNIX.

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