使用单个安装生成静态库和可执行文件(autoconf)

2 c++ automake autoconf static

我知道如何构建项目或如何使用autoconf创建库.

我想要实现的是生成一个静态库并使用该库在单个configure/make/make install运行中构建项目.

我想将一些源文件放入库中,其余的要使用这个库进行编译.

如何修改makefile.am文件和configure.ac以使其正常工作?

Kei*_*thB 6

最简单的方法是使用libtool和automake"便利库".这是Makefile.am的最小示例

lib_LTLIBRARIES = libExample.la 
libExample_la_SOURCES = lfile1.C 
bin_PROGRAMS = test
test_SOURCES = tfile1.C 
test_LDADD = libExample.la 
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

这将在目录中构建静态和动态库libExample .libs.
如果你只想要一个静态库,你可以传递--disable-sharedconfigure.