Введение в Unix

Библиотеки


Как мы показали выше, на вход линкера могут подаваться не только файлы объектного кода, но и библиотечные файлы, которые оказываются очень удобным средством хранения объектных модулей, если их становится очень много.

Имя библиотечного файла обычно оканчивается на .a. Имеется команда ar (архив) для создания, пополнения и просмотра библиотечных файлов.

Пример создания библиотеки из трех объектных файлов:

$ ar rcv exam.a test.o check.o prove.o a - test.o a - check.o a - prove.o $

Здесь ключи команды ar означают:

r - заменить (replace) модули в библиотеке;

c - создать (create) библиотеку;

v - печатать включаемые модули (verbose).

Теперь мы можем распечатать содержимое библиотеки командой ar с ключом t (table of content):

$ ar t exam.a test.o check.o prove.o $

и ссылаться на библиотеку в командах вызова компиляторов или линкера, например:

$ ld -o test /lib/frt0.o exam.a -lF77

Следует помнить, что порядок размещения модулей в библиотеке существенен.

Например, если подпрограмма test вызывает подпрограмму check, то test.o должен предшествовать check.o в библиотеке. Для выявления и печати таких зависимостей предназначена команда lorder.



Содержание раздела