Создать как статическую, так и общую библиотеку с помощью GNU libtool?

Я использую автоинструменты GNU (включая automake!) для своего проекта. Я хотел бы знать, могу ли я создать статическую и общую библиотеку с помощью libtool? Или объявления будут отдельными? Будет ли это:

LT_INIT(shared static)

Работа?


person Mohit Deshpande    schedule 29.11.2010    source источник


Ответы (1)


Ничего, кроме LT_INIT, не требуется, по умолчанию создаются как статические, так и разделяемые библиотеки. Если хотите, вы можете снова явно указать значения по умолчанию (но это как бы избыточно)

LT_INIT
AC_ENABLE_SHARED
AC_ENABLE_STATIC

редактирование: в руководстве указано, что LT_INIT([shared]) и LT_INIT([static]) (в сочетании с LT_INIT([shared static]) также должны работать. Также более точная формулировка в руководстве о том, что используется по умолчанию, когда задано LT_INIT: этот макрос включает общие библиотеки, если они доступны, а также включает статические библиотеки, если они не не конфликтовать с общими библиотеками.

person user502515    schedule 30.11.2010
comment
Итак, когда запускается ./configure && make, автоматически создается статическая И разделяемая библиотека? - person Mohit Deshpande; 30.11.2010
comment
Если только configure.ac не содержит, скажем, AC_DISABLE_STATIC, по умолчанию будут собраны оба. AC_DISABLE_STATIC можно противопоставить, например, ./configure --enable-static. Итак, то, что есть в configure.ac, на самом деле является предложением разработчика для пользователей. - person user502515; 01.12.2010
comment
Спасибо за дополнительную информацию @ user502515. Я буду иметь это в виду. - person Mohit Deshpande; 01.12.2010