Automake и стандартные разделяемые библиотеки - PullRequest
7 голосов
/ 18 января 2010

Как я могу заставить automake создать стандартную разделяемую библиотеку вместо библиотеки libtoolized? Обычно я создаю abc.so, на который ссылается полный путь и загружает в основную программу. Есть ли способ заставить АМ сделать то же самое? Если я перечислю это как _LIBRARY, automake пожалуется: 'abc.so' is not a standard library name; did you mean 'libabc.a'

Просто чтобы уточнить: Да, мне нужна только поддержка .so - без статики. И да, я хочу произвольное имя файла.

Ответы [ 4 ]

7 голосов
/ 19 июня 2011

libtool - это путь. Если вам нужно собственное имя, добавьте параметр -module в _LDFLAGS, например:

plugindir= /some/where  
plugin_LTLIBRARIES= abc.la
abc_la_LDFLAGS= -module
6 голосов
/ 18 января 2010

Automake не знает, как создать общую библиотеку, потому что нет переносимого способа сделать это. Если вы хотите использовать совместно используемую библиотеку с Automake, вы должны использовать Automake + Libtool. Обратите внимание, что вы можете легко настроить libtool, чтобы он не создавал статическую библиотеку (с LT_INIT([disable-static]) в вашем configure.ac) по умолчанию.

1 голос
/ 20 января 2010

Библиотека libtoolized - это оболочка вокруг одной или нескольких стандартных библиотек.Вы можете найти эти библиотеки в ".libs" после запуска "make" или в "$ prefix / lib" после запуска "make install".

На компьютере с Linux вы должны в конце концов найти файл с именем ""libabc.so».

0 голосов
/ 18 января 2010

IIRC, нет ничего особенного в библиотеках, созданных с помощью libtool, если только вы не ссылаетесь на libltdl. Если вы не хотите использовать libtool, у вас есть право выбора и вам не слишком важна переносимость, тогда вы можете использовать automake без libtool. Я бы порекомендовал использовать вместо этого всю мощь libtool.

На самом деле, я даже не знаю, для чего подходит _LIBRARY, не нашел его в руководстве / разделе ссылок .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...