我正在尝试用自动工具生成共享和静态库,到目前为止我已经
configure.ac:
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.68])
AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])
AM_INIT_AUTOMAKE(memory,1.0.0)
#AC_CONFIG_SRCDIR([include/memory.h])
#AC_CONFIG_HEADERS([config.h])
# Checks for programs.
AC_PROG_CC
AM_PROG_CC_C_O
AC_PROG_RANLIB
AC_PROG_LIBTOOL
# Checks for libraries.
# Checks for header files.
AC_CHECK_HEADERS([stdlib.h])
# Checks for typedefs, structures, and compiler characteristics.
# Checks for library functions.
AC_FUNC_MALLOC
AC_CONFIG_FILES([Makefile])
AC_OUTPUT我的主目录中的makefile.am:
lib_LTLIBRARIES = libmemory.la
libmemory_la_SOURCES = src/memory.c
libmemory_la_CFLAGS = -I./include我只想让他在这个目录中创建两个文件,.a和.so,但是他创建了./libs目录和下面的文件:
libmemory.a
libmemory.la -> ../libmemory.la
libmemory.lai
ibmemory_la-memory.o
libmemory.so -> libmemory.so.0.0.0
libmemory.so.0 -> libmemory.so.0.0.0
libmemory.so.0.0.0那么我应该怎么做,在动态版本中创建一个简单的静态库呢?
发布于 2012-03-25 03:24:11
.libs是一个特定于libtool内部实现的目录,换句话说,您不必过多考虑它。您将获得一个libmemory.la,它表示所有变体(静态、共享、..)都是你自己造的。在执行make install时,它们都将按照预期正确安装。
库使用各种方案进行版本控制,而libtool必须缺省为某个值,这就是为什么您会得到一个libememy.so.0.0.0。
https://stackoverflow.com/questions/9851859
复制相似问题