LINUX.ORG.RU

библиотеки.


0

0

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

★★★★

Статическая библиотека -- не более чем пачка объектных файлов в одном
архиве. Каждый объект компилируется самым естественным образом, с
флагом -c (остановиться после компиляции). В библиотеку объекты
собираются командой ar; в простейшем случае,
ar cr library-name obj1.o obj2.o ...

В зависимости от версии ar, может понадобиться вызвать ranlib (он
строит оглавление библиотеки, некоторые версии ar сами это умеют).
См. man ar, man ranlib а также info "GNU Make" (раздел про архивы).

Динамическая библиотека строится линкером; проще всего вызвать
gcc -shared -Wl,-soname,libxyz.so.0 -о libxyz.so.0.0
(обратите внимание, что filename библиотеки не совпадает с ее
soname), и организовать пару символических ссылок:
libxyz.so.0 --> libxyz.so.0.0
libxyz.so --> libxyz.so.0

Написание функций и заголовков тоже военной тайны не содержит.
Следуйте обычной практике Хорошего Кода. Избегайте зависимостей
между объектами. Экспортируйте один include на библиотеку; включайте
его в *каждый* исходник библиотеки; избегайте глобальных данных;
не загрязняйте namespace.

Если в не ответил на ваши вопросы, уточняйте.
Успехов.

anonymous
()

"libtool, libtool - адназначна!" (C)

anonymous
()

или firststeps.ru - вроде толково

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