| Библиотеки и заголовочные файлы |
|
Библиотеки позволяют разным программам использовать один и тот же объектный код. Это избавляет программиста от необходимости создавать то, что уже создано. В этой главе рассматриваются методы создания и применения библиотек. Библиотеки и заголовочные файлы Библиотека (library) — это набор соединенных определенным образом объектных файлов. Библиотеки подключаются к программе на стадии компоновки. Функция printf о, например, реализована в стандартной библиотеке языка С, которая автоматически подключается к программе, когда компоновка осуществляется посредством gcc. Чтобы подключить библиотеку к программе, нужно передать компоновщику опцию -1, указав после нее (можно без разделяющего пробела) имя библиотеки. Если, например, к программе необходимо подключить библиотеку mylibrary, то для осуществления компоновки следует задать такую команду: $ gcc -о myprogram myprogram.o -lmylibrary Чаще всего файлы библиотек располагаются в специальных каталогах (/lib, /usr/lib, /usr/local/lib и т. п.). Если же требуется подключить библиотеку из другого места, то при компоновке следует указать опцию -l, после которой (можно без разделяющего пробела) указывается нужный каталог. Таким образом, при необходимости подключения библиотеки mylibrary, находящейся в каталоге /usr/lib/particular, для выполнения компоновки указывают такую команду: $ gcc -о myprogram myprogram.o -L/usr/lib/particular -lmylibrary Следует отметить, что имена файлов библиотек обычно начинаются с префикса lib. Имя библиотеки получается из имени файла отбрасыванием префикса lib и расширения. Если, например, файл библиотеки имеет имя libmylibrary.so, то сама библиотека будет называться mylibrary. Библиотеки подразделяются на две категории:
Статические библиотеки (static libraries) создаются программой аг. Файлы статических библиотек имеют расширение .а. Если, например, статическая библиотека foo (представленная файлом libfoo.a) создана из двух объектных файлов fool.o и foo2.o, то следующие две команды будут эквивалентны: $ gcc -о myprogram myprogram.o fool.o foo2.o $ gcc -о myprogram myprogram.o -lfoo Совместно используемые библиотеки (shared libraries) создаются компоновщиком при вызове gcc с опцией -shared и имеют расширение .so. Совместно используемые библиотеки не помещают свой код непосредственно в программу, а лишь создают специальные ссылки. Поэтому любая программа, скомпонованная с динамической библиотекой, при запуске требует наличия данной библиотеки в системе. Иногда заголовочные файлы тоже называют библиотеками. Это не так! Библиотеки — это объектный код, сгруппированный таким образом, чтобы им могли пользоваться разные программы. Заголовочные файлы — это часть исходного кода программы, в которых, как правило, определяются соглашения по использованию общих идентификаторов (имен).
Set as favorite
Bookmark
Email This
Hits: 348 Комментарии (0)RSS feed CommentsНаписать комментарий |