Генерация статической библиотеки и исполняемого файла с одной установкой (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
,