Генерация статической библиотеки и исполняемого файла с одной установкой (autoconf)

Я знаю, как создать проект или как создать библиотеку, используя autoconf.

Я хочу создать статическую библиотеку и использовать эту библиотеку для создания проекта за один запуск configure/make/make install.

Я хочу, чтобы некоторые исходные файлы помещались в библиотеку, а остальные компилировались с использованием этой библиотеки.

Как мне изменить файлы makefile.am и configure.ac, чтобы он заработал?

1 ответ

Самый простой способ сделать это - использовать libtool и automake "вспомогательные библиотеки". Вот минимальный пример для Makefile.am

lib_LTLIBRARIES = libExample.la 
libExample_la_SOURCES = lfile1.C 
bin_PROGRAMS = test
test_SOURCES = tfile1.C 
test_LDADD = libExample.la 

для configure.ac

AC_INIT(test, 1.0)
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([foreign])
AC_PROG_CXX
AC_PROG_LIBTOOL
AC_SUBST(LIBTOOL_DEPS)
AC_LTDL_DLLIB
AC_CONFIG_FILES([Makefile])
AC_OUTPUT

Это создаст статическую и динамическую библиотеку libExample в каталоге .libs,
Если вы хотите просто статическую библиотеку, вы можете передать --disable-shared в configure,

Другие вопросы по тегам