Как использовать pkglib_LTLIBRARIES = test.la только для сборки * .so - PullRequest
3 голосов
/ 01 ноября 2008

Я использую автоинструменты для создания общего объекта.

Использование pkglib_LTLIBRARIES в моем Makefile.am приводит к созданию libtest.la AND libtest.so.

Я только хочу его собрать / установить libtest.so.

Возможно ли это?

Ответы [ 3 ]

3 голосов
/ 06 сентября 2009

Вы можете передать --disable-static в качестве опции configure.

3 голосов
/ 01 ноября 2008

Детали создания библиотек сильно различаются от платформы к платформе. Например, в OS X ваша библиотека будет называться libtest.dylib, а не libtest.so. libtool является частью пакета autotools, и его задача состоит в том, чтобы абстрагироваться от всех беспорядочных деталей, зависящих от платформы. Для этого создается высокоуровневое, независимое от платформы описание библиотеки. Это файл libtest.la, который вы видите. libtools использует независимое от платформы описание библиотеки, чтобы собрать окончательную нативную библиотеку.

Если вы используете автоинструменты, я не думаю, что вы сможете избежать генерации libtest.la. Я полагаю, вы могли бы взломать свой локальный скрипт оболочки libtool, чтобы удалить его по завершении, но вам просто нужно будет сгенерировать его снова при следующем запуске make.

Я нашел документацию GNU для libtool несколько непрозрачной. Вот менее непрозрачное, но немного устаревшее описание .

0 голосов
/ 14 ноября 2017

Другой вариант будет установить это в configure.ac:

LT_INIT([disable-static])

См. документацию по LT_INIT .

...