Корвет/Библиотекарь LIB
< Корвет
| Данный материал защищён авторскими правами!
Использование материала заявлено как добросовестное, исключительно для образовательных некоммерческих целей. |
Библиотекарь LIB.
------------------
Содержание
Аннотация...........................................
1. Назначение библиотекаря.............................
2. Обращение к библиотекарю............................
3. Задание файлов-источников...........................
4. Ключи библиотекаря..................................
5. Сообщения, выдаваемые библиотекарем.................
Аннотация
В настоящем руководстве рассматривается программа обслу-
живания библиотек LIB. Описываются назначение и способы созда-
ния библиотеки перемещаемых модулей.
1. Назначение библиотекаря
Программа библиотекарь предназначена для создания и кор-
ректировки библиотеки перемещаемых модулей. С помощью библиоте-
каря пользователь может создавать и свои собственные библиоте-
ки.
2. Обращение к библиотекарю
Программа хранится на диске в файле LIB.COM. Для запуска
программы необходимо ввести команду:
LIB
По этой команде библиотекарь загружается в память и выво-
дит запрос * . Это означает, что он готов к работе и ожидает
ввода командной строки. Командная строка состоит из имени фай-
ла-приемника (под этим именем на диске будет создана библиоте-
ка), знака равенства и перечня файлов-источников. Командная
строка указывает библиотекарю, какие модули пользователь желает
включить в свою библиотеку. Все исходные модули должны иметь
тип REL, результатом работы будет файл с заданным именем и ти-
пом REL. Если имя файла-приемника не задано , то по умолчанию
создается файл FORLIB.LIB.
В качестве файла-источника может быть задана уже имеющаяся
библиотека. Тогда по желанию можно включить в файл-приемник всю
библиотеку целиком или выбрать из нее лишь некоторые модули.
Командная строка может быть задана при вызове LIB.
Пример.
LIB MYLIB = ALFA,BETA,GAMMA
3. Задание файлов-источников
Файл-источник может быть задан несколькими способами:
- файл состоит из одного модуля. Тогда просто задается имя
файла;
- файл содержит несколько модулей. В этом случае можно за-
дать только имя файла. Тогда файл будет включен целиком.
Можно после имени файла в угловых скобках задать через
запятую имена необходимых модулей. При этом будут вклю-
чены только необходимые модули.
Пример.
BILIB <FIRST,MIDDLE,LAST>
Если нужно включить группу модулей, то используются две
точки (..).
<.."имя модуля"> означает включение всех модулей,стоящих
до заданного и заданный модуль.
<"имя модуля"..> означает включение всех модулей, начиная
с заданного.
<"имя модуля 1".."имя модуля 2"> означает включение группы
стоящих подряд модулей, начиная с "имя модуля 1" и кончая "имя
модуля 2".
Можно также задать "имя модуля"+-N, где N не больше 255.
<"имя"+1> означает модуль, стоящий после заданного.
<"имя"-1> означает модуль, стоящий до заданнго.
Пример.
<SIN+1..COS-1> включить все модули, начиная с модуля,
идущего после модуля с именем SIN, и кончая модулем,
стоящим до модуля COS.
4. Ключи библиотекаря
Для управления созданием библиотеки используются ключи:
/O для ключа /L установить режим восьмеричного вывода;
/H для ключа /L установить режим шестнадцатиричного вывода;
/U вывести список символов, оставшихся неопределенными пос-
ле поиска по всей библиотеке;
/L вывести список всех заданных модулей и содержащихся в
них определений символических имен;
/C заново начать создание библиотеки;
/E выход в операционную систему. Созданная библиотека,
имевшая тип LIB,переименовывается и получает тип REL.
Старая библиотека с таким же именем стирается;
/R осуществляет то же, что и /E, но без выхода в операци-
онную систему.
В Н И М А Н И Е !
-----------------
/E легко может разрушить библиотеку FORLIB.REL. Если вы
не хотите разрушить старую библиотеку, то для выхода из
"библиотекаря" используйте ^C. При этом на диске оста-
ется файл "имя".LIB. Его следует стереть, используя ко-
манду ERA.
*) Примечание.
В библиотеку сначала желательно помещать модули, со-
держащие внешние ссылки, а лишь потом модули, содер-
жащие эти имена как ENTRY. Это облегчит работу компо-
новщика, т.к. иначе он не сможет за один проход удов-
летворить внешние ссылки.
5. Сообщения, выдаваемые библиотекарем
Если при задании командной строки для LIB был указан ключ
/L, то библиотекарь выдает на консоль следующие сведения о каж-
дом модуле, входящем в указанный библиотечный файл:
MODULE "имя модуля" OF "имя файла"
LENTH OF PROGRAM "число" - длина области команд
LENTH DATA AREA "число" - длина области данных
ENTRY POINT(S): - точки входа
"список глобальных имен, задан-
ных в данном модуле как ENTRY,
и их адреса"
COMMON BLOCK(S): - блоки COMMON
"список имен COMMON"
EXTERNAL REFERENCE(S): - ссылки на внешние имена
"список глобальных имен,которые
в данном модуле определены как
EXTRN"
После сведения о каждом модуле на консоль выводится свод-
ная таблица глобальных имен и модулей, в которых они определены
как ENTRY.
SYMBOL VALUE DEFINED REFERENCED -
символ значение где определен
"список глобальных имен"
В процессе работы LIB может выдавать следующие сообщения
об ошибках:
OUT OF MEMORY памяти недостаточно
COMMAND ERROR неверная команда
FILE READ ERROR ошибка при чтении файла
FILE NOT FOUND файл не найден
CAN'T ENTER FILE с файлом работать нельзя
MODULE NAME/NUMBER NOT FOUND IN FILE
модуль с заданным именем/номером не найден в файле
FIRST MODULE IN UNTIL CLAUSE AFTER LAST
первый модуль в списке идет после последнего
LIBRARY WRITE ERROR ошибка при записи в библиотеку
UNSATISFIED EXTERNAL REQUEST(S)
неудовлетворенный запрос EXTRN