Autoconf, общая библиотека Libtool и статическая библиотека - PullRequest
0 голосов
/ 10 марта 2011

Я использую инструменты autoconf gnu для сборки своего продукта. Он генерирует как разделяемую, так и статическую библиотеку для любой библиотеки, где упоминается * .la. Проблема в том, что если вы используете .la для связи вашего двоичного файла в Makefile.am. Он связан с динамической библиотекой, но когда вы используете ldd для двоичного файла, он говорит "не динамический исполняемый файл", хотя он связан с общей библиотекой. Я доказал это, удалив разделяемую библиотеку после сборки двоичного файла, а затем попытался запустить двоичный файл. Он не нашел общую библиотеку и не смог запустить. Другой вопрос, как разместить библиотеку в указанном месте, используя направление Makefile.am?

1 Ответ

3 голосов
/ 10 марта 2011

Похоже, вы запускаете ldd для сценариев-оболочек, созданных libtool.Они используются для связывания неустановленных библиотек с неустановленными исполняемыми файлами.Реальные двоичные файлы помещаются в каталог .libs.

Таким образом вы можете установить lib в определенное место

mylibrary_LTLIBRARIES = libmylibrary.la
mylibrarydir = ${libdir}/my_plugins/
...