Книга: Программирование для Linux. Профессиональный подход
2.3.1. Архивы
2.3.1. Архивы
Архив (или статическая библиотека) — это коллекция объектных файлов, хранящаяся в виде одного файла (он является примерным эквивалентом LIB-файла в Windows). Когда архив поступает на вход компоновщика, тот ищет в нем нужные объектные файлы, извлекает их и подключает к программе так, как если бы они были указаны непосредственно.
Архив создается посредством команды ar
. Архивные файлы традиционно имеют расширение .a
, а не .o
, которое закреплено за отдельными объектными файлами. Вот как объединить файлы test1.o
и test2.o
в единый архив libtest.a
:
% ar cr libtest.a test1.o test2.o
Флаги cr
сообщают команде ar
о необходимости создать архив.[8] Теперь можно подключать этот архив к программам с помощью флага -ltest
компилятора gcc
или g++
, как описывалось в разделе 1.2.2, "Компоновка объектных файлов".
Обнаруживая в командной строке архив, компоновщик ищет в нем определения всех символических констант (функций или переменных), на которые дается ссылка в уже обработанных объектных файлах. Объектные файлы, содержащие определения этих констант, извлекаются из архива и включаются в исполняемый файл. В связи с тем что компоновщик просматривает архив один раз, архивные файлы нужно указывать в конце командной строки. Предположим, например, что имеются два файла: test.c
(листинг 2.7) и app.c
(листинг 2.8).
- 10.5.1. Пароли, документы, архивы
- 19.2.1.1. Отправляйте заплаты, а не целые архивы или файлы
- 3.7.3. RAR-архивы
- 3.7.1. ZIP-архивы
- 3.7.2. GZIP, BZIP2, TAR-архивы
- Переход в блоги, онлайновые хранилища закладок и архивы страниц (вкладки Post > Livejournal)
- Организуем архивы
- 19.2.4.1. Убедитесь, что архивы всегда распаковываются в один новый каталог
- 9.1.2. Архивы
- Thunar и архивы
- Архивы RAR и ZIP
- Самораспаковывающиеся архивы