我知道如何构建项目或如何使用autoconf创建库。
我想要实现的是生成静态库并使用此库在单个configure / make / make install运行中构建项目。
我想将一些源文件放入库中,其余的要使用这个库进行编译。
如何修改makefile.am文件和configure.ac以使其正常工作?
答案 0 :(得分:6)
最简单的方法是使用libtool和automake“便捷库”。 这是一个最小的例子 for Makefile.am
lib_LTLIBRARIES = libExample.la
libExample_la_SOURCES = lfile1.C
bin_PROGRAMS = test
test_SOURCES = tfile1.C
test_LDADD = libExample.la
for 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
这将在目录.libs
中构建静态和动态库libExample
如果您只想要一个静态库,可以将--disable-shared
传递给configure
。