|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Создание и использование библиотек: статических, совместно используемых и динамическихВ программах на языке С часто встречаются функции, которые достаточно один раз скомпилировать, а затем можно многократно использовать. Кроме того, существуют функции, которые могут применяться программистом при написании других программ. Обычно такие функции предназначены для выполнения стандартных задач, таких как ввод-вывод данных из базы данных или вывод данных на экран. Можно предварительно откомпилировать подобные функции и поместить их в особый файл объектного кода, именуемый библиотекой. Функции такого библиотечного файла могут объединяться с программой с помощью редактора связей. Это позволяет программисту избежать проблем, связанных с компиляцией названных функций для каждой из разрабатываемых программ. При разработке приложений различных типов используются специализированные библиотеки, которые находятся в системном каталоге. Например, в названном каталоге можно найти библиотеку libdbm, которая содержит функции dbm. Эти функции обеспечивают доступ к файлам баз данных, и их можно применять в пользовательских программах, выполняя компоновку с данной библиотекой. В математических приложениях используется математическая библиотека, libm, а в приложениях X Window — библиотека Xlib, libXll. Во всех прикладных программах применяются стандартные библиотеки С, libc, которые содержат функции для выполнения таких задач, как управление памятью и организация ввода-вывода (сейчас доступна новая версия библиотеки GNU, libc 2.0). Эти библиотеки находятся в системных каталогах, таких как /usr/lib, и могут применяться любым пользователем системы. Можно создавать и собственные пользовательские библиотеки, которые будут либо применяться в какой-то специальной программе, либо предоставляться в распоряжение других программистов. Библиотеки могут быть статическими, динамическими или совместно используемыми. Статическая библиотека — это библиотека, код которой включается в программу на этапе компиляции. Коды совместно используемой библиотеки становятся доступными для загрузки при выполнении программы. Программа, работающая с совместно используемыми библиотеками, просто создает список библиотек, необходимых для ее функционирования. Затем, при выполнении программы, эти библиотеки загружаются, и исполняемая программа получает доступ к содержащимся в них функциям. Динамическая библиотека является разновидностью совместно используемой библиотеки. Она также может быть загружена при выполнении программы. Однако она не загружается до тех пор, пока к ней не обратится определенная команда программы. Затем эта библиотека может быть выгружена из памяти, а ее место займет другая библиотека. За счет применения совместно используемых и динамических библиотек можно намного уменьшить размер исполняемой программы. Вместо того чтобы включать библиотеку в состав исполняемой программы, достаточно сослаться на нее. Большинство существующих библиотек являются совместно используемыми библиотеками. Возможность их применения была обеспечена в результате внедрения формата ELF для двоичных исполняемых файлов, хотя для совместно используемых библиотек (специально обозначенных) может применяться более старый формат, a.out. В настоящее время формат ELF является стандартным для всех двоичных файлов в Linux. Использование библиотек GNU определяется лицензией LGPL (Library GNU Public License). Условия этой лицензии отличаются от условий стандартной лицензии GNU тем, что программы, разработанные с их использованием, могут поставляться на коммерческой основе. Однако исходный код самих библиотек предоставляется в общее пользование. Библиотеки, доступные в локальной системе, находятся в каталогах /usr/lib и /lib. Названия их всегда начинаются с префикса lib. За этим префиксом следует название библиотеки и суффикс. Используемый суффикс зависит от типа библиотеки. Для совместно используемых библиотек применяется суффикс.so, за которым следует номер версии этой библиотеки. Для статической библиотеки используется расширение.а. Для совместно используемых библиотек в старом формате a.out применяется расширение.sa. libимя.so. старший_номер.младший_номер Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |