8.7. Программа ppumove

На верх  Назад  Вперёд

ppumove – это программа, которая создаёт общие или статические библиотеки из нескольких модулей. Она похожа на программу tpumove, которая поставляется с Turbo Pascal. Программа поставляется вместе с компилятором. Пример использования:

ppumove [Опции] unit1.ppu unit2.ppu ... unitn.ppu

В выше описанном примере Опции, это:

Опция

Описание

-b

Генерировать пакетный файл, содержащий связи и архивы команд, которые должны быть выполнены. Имя этого файла будет pmove.sh на LINUXUnix-подобных ОС), и pmove.bat на WINDOWS и DOS.

-d xxx

Установить каталог для размещения выходных файлов, где ххх – имя каталога.

-е ххх

Установить расширение файлов перемещаемых модулей, где ххх – расширение. По умолчанию это расширение .ppl. Вы не должны указывать точку при установке расширения.

-о ххх

Установить имя выходного файла, то есть имя файла, содержащего все модули. Этот параметр является обязательным, если вы используете несколько файлов. На LINUX программа ppumove присоединит к началу имени файла префикс lib, если его там нет, и добавит расширение, соответствующее типу библиотеки.

-q

Работать в фоновом режиме.

-s

Создавать статическую библиотеку вместо динамической. По умолчанию создаётся динамическая библиотека на LINUX.

-w

Указать программе, что она работает по Windows NT. Это изменит компонующей и архивирующей программ на ldw и arw соответственно.

-h или -?

Показывать короткую справку.

Работа программы заключается в следующем: она берёт каждый файл модуля и модифицирует его таким образом, что компилятор будет знать, какой код из этого модуля добавить в библиотеку. Новые файлы модулей будут иметь расширение .ppu, которое можно изменить с помощью опции –е. Затем программа поместит все объектные файлы модулей в одну библиотеку, статическую или динамическую (это определяется опцией –s).

Имя библиотеки должно устанавливаться опцией –о. При необходимости к началу имени будет добавляться префикс lib (для LINUX). Расширение будет установлено как для статических библиотек, для общедоступных библиотек расширение будет .so для LINUX и .dll для Windows NT и OS/2.

Следующий пример:

./ppumove -o both -e ppl ppu.ppu timer.ppu

Будет генерировать такой выходной файл для LINUX:

PPU-Mover Version 2.1.1
Copyright (c) 1998-2007 by the Free Pascal Development Team
Processing ppu.ppu... Done.
Processing timer.ppu... Done.
Linking timer.o ppu.o Done.

И это создаст следующие файлы:

Файл

Описание

libboth.so

Общедоступная библиотека, содержащая код из файлов ppu.o и timer.o. Под Windows NT этот файл будет называться both.dll.

timer.ppl

Файл модуля, который указывает компилятору Free Pascal, где искать код модуля timer в библиотеке.

ppu.ppl

Файл модуля, который указывает компилятору Free Pascal, где искать код модуля ppu в библиотеке.

После этого вы должны использовать или включать в дистрибутив вашей программы файлы libboth.so, timer.ppl и ppu.ppl.