Книга: Программирование для Linux. Профессиональный подход
2.3.2. Совместно используемые библиотеки
2.3.2. Совместно используемые библиотеки
Совместно используемая библиотека (известная также как динамически подключаемая библиотека) напоминает архив тем, что она представляет собой группу объектных файлов. Но между ними есть ряд важных различий. Самое основное из них заключается в том, что, когда совместно используемая библиотека подключается к программе, в исполняемый файл не включается код самой библиотеки: в нем присутствует лишь ссылка на библиотеку. Если с несколькими программами компонуется одна и та же библиотека, все они будут ссылаться на нее, но ни в одну из них она не будет включена. Так расшифровывается термин "совместное использование".
Второе важное отличие состоит в том, что совместно используемая библиотека — это не просто коллекция объектных файлов, из которых компоновщик выбирает требуемый для разрешения ссылки. В данном случае все объектные файлы, входящие в библиотеку, объединяются в единый объектный файл. Благодаря этому программы, компонующиеся вместе с библиотекой, всегда имеют доступ ко всему ее содержимому, а не только к одной конкретной части.
Чтобы создать совместно используемую библиотеку, нужно сначала скомпилировать составляющие ее объектные файлы с указанием опции -fPIC
, например:
% gcc -с -fPIC test1.c
Опция -fPIC
сообщает компилятору о том, что файл test1
.o станет частью совместно используемой библиотеки.
- 8.2. Совместно используемые библиотеки
- Настройка библиотеки
- Обеспечение безопасности библиотеки
- Удаление библиотеки
- Корпуса, используемые в ПК и серверах
- Блоки питания, используемые в компьютерах
- Модификаторы спецификации преобразования, используемые в функции printf( )
- Листинг 5.1. (shm.c) Пример совместного использования памяти
- 12.5. Другие библиотеки для создания графических интерфейсов
- Пиктограммы, используемые в книге
- Ключевые слова, используемые для спецификации типа данных
- Библиотеки SharePoint