Операционная система UNIX. Руководство программиста




Работа с архивами


Чаще всего архивные файлы используются для хранения объектных файлов, составляющих библиотеку. Имя библиотеки может указываться в командной строке при вызове редактора связей (или в опции редактора связей команды cc). В результате при разрешении ссылок редактор связей просматривает таблицу имен архивного файла.

Команда ar(1) служит для создания архивных файлов, различных действий над их содержимым, а также для операций над их таблицами имен. Синтаксис команды ar несколько отличается от принятого в ОС UNIX. В командной строке необходимо задать ключ - один из символов из набора drqtpmx. Значение ключа определяет действия команды ar. Для изменения способа выполнения требуемой операции ключ может быть скомбинирован с одним или несколькими символами из набора vuaibcls. Общий вид команды ar:

ar -ключ [позиционирующее_имя] а_файл [имя]...

где позиционирующее_имя - это имя элемента архива, которое используется с некоторыми ключевыми символами для управления размещением файлов в архиве; а_файл - это имя архивного файла. По соглашению, имена архивных файлов имеют расширение .a (например, libc.a - архивный файл, содержащий объектные файлы стандартных функций языка C). Наконец, может быть указано одно или несколько имен, задающих файлы, над которыми будет выполнена операция, определенная значением ключа.

С помощью следующей команды можно создать архивный файл, содержащий объектные модули, используемые в программе restate:

ar -rv rste.a restate.o oppty.o pft.o rfe.o

Если в текущем каталоге нет других объектных файлов, то же можно проделать с помощью команды

ar -rv rste.a *.o

В результате выполнения последней команды на экран будет выведено следующее:

ar: creating rste.a a - oppty.o a - pft.o a - restate.o a - rfe.o

Команда nm(1) используется для получения различной информации из таблицы имен объектных файлов обычного формата. Объектные файлы могут, но не обязаны, храниться в архиве. Ниже приводится результат выполнения команды

nm -f rste.a

Опция -f предписывает выдачу полной информации. Предполагается, что при компиляции использовалась опция -g.




Содержание  Назад  Вперед