Алексей Махоткин

домашняя страница

Automake

Go to the first, previous, next, last section, table of contents.


Построение разделяемых библиотек

Построение разделяемой библиотеки является относительно сложной задачей. Для помощи в платформонезависимом построении разделяемых библиотек была создана программа GNU Libtool (see section `Введение’ in Руководство Libtool).

Automake использует Libtool для построения библиотек, указанных в переменной `LTLIBRARIES’. Каждая переменная `_LTLIBRARIES’ является списком разделяемых библиотек, которые нужно построить. Например, для создания библиотеки с именем `libgettext.a’ и соответствующей ей разделяемой библиотеки, а также их установки в `libdir’, вы должны написать:

lib_LTLIBRARIES = libgettext.la

Заметьте, что разделяемые библиотеки должны быть установлены, так что использование check_LTLIBRARIES не разрешено. Однако же, разрешено использование переменной noinst_LTLIBRARIES. Эта возможность должна быть использована для “готовых библиотек” libtool.

Для каждой библиотеки переменная `library_LIBADD’ содержит имена дополнительных объектов libtool (файлы `.lo’), которые будет добавляться в разделяемую библиотеку. Переменная `library_LDFLAGS’ содержит любые дополнительные флаги libtool, такие как `-version-info’ или `-static’.

В то время как обычные библиотеки могут включать @LIBOBJS@, библиотеки, использующие libtool, должны использовать @LTLIBOBJS@. Это требуется, поскольку имена объектных файлов, над которыми работает libtool, не обязательно оканчиваются на `.o’. Руководство по libtool содержит более детальное описание этой темы.

Для библиотек, устанавливаемых в некоторый каталог, Automake будет автоматически снабжать их соответствующим ключом `-rpath’. Однако для библиотек, определенных во время конфигурации (и таким образом перечисленных в переменной EXTRA_LTLIBRARIES), Automake не знает возможных каталогов установки; для таких библиотек вы должны сами добавить ключ `-rpath’ в соответствующую переменную `_LDFLAGS’.

Для подробного описания смотрите See section `Руководство Libtool’ in Руководство Libtool.


Go to the first, previous, next, last section, table of contents.

Comments