我知道如何构建项目或如何使用 autoconf 创建库。
我想要实现的是生成一个静态库并使用该库在单个 configure/make/make install 运行中构建一个项目。
我希望将一些源文件放入库中,其余的则使用该库进行编译。
如何修改 makefile.am 文件和 configure.ac 以使其正常工作?
最简单的方法是使用 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
.