Корвет/Библиотекарь 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