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

       

Создание с помощью mkshlib(1) разделяемых библиотек сборки и выполнения


Как разделяемая библиотека сборки, так и разделяемая библиотека выполнения создаются утилитой ОС UNIX mkshlib(1), которая вызывает другие программы, например, as(1) или ld(1). Это делается при помощи системного вызова execvp [см. exec(2)], который ищет нужные программы в директориях, определяемых значением переменной окружения $PATH. Утилита mkshlib(1) обрабатывает префиксы подобно команде cc(1), то есть вызываемые программы получают тот же префикс. Например, 3b2mkshlib будет обращаться к 3b2ld. Относительно всех перечисленных утилит см. Справочник пользователя.

Чтобы использовать mkshlib(1), необходимо подготовить файл спецификаций (это мы только что обсудили) и указать опции командной строки. Эти последние мы сейчас и рассмотрим. Синтаксис вызова mkshlib(1) таков:

mkshlib -s файл_спецификаций [-t библ_выполнения] [-h библ_сборки] [-n] [-L каталог] [-q]

Рассмотрим допустимые опции по очереди.

-s файл_спецификаций
Задает файл_спецификаций разделяемой библиотеки, содержащий всю информацию, необходимую для описания этой библиотеки (о его структуре см. предыдущий раздел). В него входят спецификации таблицы переходов, маршрутное имя файла, в котором будет находиться разделяемая библиотека выполнения, начальные адреса секций команд и данных разделяемой библиотеки выполнения, спецификации инициализации для разделяемой библиотеки сборки, и, наконец, перечень объектных файлов, которые должны быть включены в разделяемую библиотеку.
-t библ_выполнения
Задает файл, в который будет помещена создаваемая разделяемая библиотека выполнения. На стадии выполнения разделяемая библиотека должна находиться в том месте, которое было указано в ее файле спецификаций (см. описание директивы #target в предыдущем разделе). Если указана опция -n, генерация разделяемой библиотеки выполнения не производится.
-h библ_сборки
Задает файл, куда будет помещена разделяемая библиотека сборки. Если эта опция не указана, разделяемая библиотека сборки не генерируется.
-n
Указывает, что не нужно генерировать разделяемую библиотеку выполнения. Эта опция может быть полезна при создании новой разделяемой библиотеки. При указании опции -n, необходимо тем не менее указывать и опцию -t, так как для построения разделяемой библиотеки сборки требуется версия разделяемой библиотеки выполнения.
-q
Не выдавать предупреждающих сообщений.



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