
- •Для чего используются библиотечные файлы?
- •Статически и динамически подключаемые библиотеки
- •Методика выполнения работы Создание статической библиотеки с помощью репозитория объектов
- •Использование файла библиотеки модулей
- •2. Создание динамически подключаемой библиотеки с помощью репозитория объектов
- •Задание на дом
- •Командные символы
- •Примеры работы с tlib
Командные символы
Чтобы сообщить программе TLIB, какие изменения необходимо сделать с библиотекой, нужно ввести командные символы (такие как +, -,-+, *, -*) непосредственно после имени модуля, имени объектного файла, либо имени библиотеки. Задать можно более одного действия, причем в любом порядке.
В Таблице 2 приводится список всех командных символов программы TLIB, тип имени файла, к которому применяется данная операция, и действия, выполняемые по данному командному символу:
Таблица 2
Команда Значение
+{objfile|lib} При употреблении данного символа с именем
объектного файла знак плюс (+) добавляет объ-
ектный файл к входной библиотеке, причем дан-
ный объектный файл становится последним моду-
лем в библиотеке. Для задания имени объектно-
го файла можно использовать спецификацию
маршрута. Поскольку программа LIB автомати-
чески предполагает расширение .OBJ, можно
опустить расширение в имени объектного файла.
Если знак (+) употребляется с именем библио-
теки, содержимое данной библиотеки добавляет-
ся к входной библиотеке. Имя библиотеки долж-
но иметь расширение .LIB.
-module Удаляет данный модуль из входной библиотеки.
Имя модуля не имеет ни имени маршрута, ни
расширения имени.
-+module Заменяет во входной библиотеке данный модуль.
Имена модулей не имеют ни наименований марш-
рутов, ни расширений. Утилита LIB удаляет
данный модуль, затем добавляет объектный
файл, имеющий то же самое, что и модуль, имя.
Объектный файл стандартно имеет расширение
.OBJ и располагается в текущем рабочем ката-
логе.
*module Копирует данный модуль из библиотеки в объек-
тный файл в текущем рабочем каталоге. Модуль
остается в библиотечном файле. При копирова-
нии модуля в объектный файл, программа LIB
добавляет расширение .OBJ.
-*module Перемещает данный объектный модуль из библио-
теки в объектный файл. Данная операция экви-
валентна копированию модуля в объектный файл,
как описано выше, затем происходит удаление
модуля из библиотеки.
Примеры работы с tlib
TLIB LANG -+HEAP;
Приведенный выше пример использует командный символ замены (-+) для замены с помощью программы TLIB модуля HEAP в библиотеке LANG.LIB. Утилита TLIB удаляет модуль HEAP из библиотеки, затем добавляет объектный файл HEAP.OBJ в качестве нового файла в библиотеку. Точка с запятой в конце командной строки просит программу TLIB на оставшиеся запросы использовать стандартные ответы. Это значит, что файл-листинг не будет создан, а данные изменения записываются в оригинальный библиотечный файл, вместо нового библиотечного файла.
TLIB LANG-HEAP+HEAP;
TLIB LANG+HEAP-HEAP;
Приведенный выше пример выполняет ту же самую функцию, что и в первом примере данного раздела, но в две отдельные операции, с помощью командных символов (+)-добавление и (-)-удаление. Действие этих команд будет тем же самым, поскольку операции удаления всегда выполняются до операций добавления, независимо от порядка данных операций в командной строке. Такой порядок выполнения устраняет конфликт при замене старой версии библиотечного файла на новую версию.
TLIB FOR;
В данном примере программа LIB последовательно выполняет контроль библиотечного файла FOR. LIB. Никаких других действий не происходит. Утилита TLIB последовательно высвечивает обнаруженные ошибки и возвращается на уровень операционной системы.
TLIB LANG,LCROSS.PUB
В данном примере программа TLIB последовательно выполняет контроль библиотечного файла LANG.LIB и затем создает файл перекрестных ссылок с именем LCROSS.PUB.
TLIB FIRST -*STUFF *MORE, ,SECOND
В данном примере программа TLIB перемещает модуль STUFF из библиотеки FIRST.TLIB в объектный файл с именем STUFF.OBJ. В процессе модуль STUFF удаляется из библиотеки. Модуль MORE копируется из библиотеки в объектный файл с именем MORE.OBJ; модуль остается в библиотеке. Исправленная библиотека получает имя SECOND.LIB. Она содержит все модули из FIRST.LIB, исключая STUFF, который был удален с помощью командного символа (-*). Оригинальная библиотека FIRST.LIB остается неизменной.
TLIBFOR
+CURSOR+HEAP-HEAP*FOIBLES
CROSSLST
Содержимое приведенного выше файла ответов просит программу TLIB удалить модуль HEAP из библиотеки TLIBFOR.LIB, извлечь модуль FOIBLES и поместить его в объектный файл с именем FOIBLES.OBJ, добавить объектные файлы CURSOR.OBJ и HEAP.OBJ в качестве двух последних модулей в библиотеку. Наконец, программа TLIB создает файл перекрестных ссылок с именем CROSSLST.
Для того чтобы попрактиковаться в создании своих библиотечных файлов нужно:
1.Напишите несколько (от 3 до 5) простейших функций. Для каждой функции используйте свой собственный файл.
2.Скомпилируйте каждую функцию и получите файлы с расширением OBJ;
3.Соберите библиотеку из полученных объектных файлов в режиме диалога с программой TLIB;
4. Выполните операции удаления и обновления модулей из библиотеки;
5.Напишите файл ответов и с его помощью еще раз создайте библиотеку, запустив программу TLIB из командного файла.