2
我想生成自動工具共享和靜態庫,所以到目前爲止,我有automake和庫
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
那麼我應該怎麼做才能在靜態的動態版本中創建一個簡單的庫?
好的,但我不希望他把那些庫放在那裏,我也不想安裝它們。我只想讓他把.a和.so文件放在autotools被調用的同一個目錄中。 – Andna 2012-03-24 19:36:13
@Andna:你沒有libtool隱藏其庫的選擇。 libtool中的所有內容都是爲了讓您不必關心庫的實際位置。只要您想要引用該庫,只需使用'.la'文件即可。如果你解釋爲什麼你想讓'.so'和'.a'文件可見,那麼我們可以向你展示如何用一種與GNU構建系統兼容的方式來組織你的項目(提醒:Autotools在這裏幫助你創建一個GNU構建系統,而不是你可能習慣的任何構建系統)。 – adl 2012-03-25 11:37:31