Я пытаюсь создать общую и статическую библиотеку с Autotools, до сих пор у меня есть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 dir и там такие файлы:
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
@Andna: У вас нет выбора, где libtool скрывает свои библиотеки. Все в libtool сделано так, что вам не нужно заботиться о том, где находятся библиотеки. Просто используйте файл '.la' в любое время, когда хотите обратиться в библиотеку. Если вы объясните причину, по которой вы хотите видеть файлы '.so' и' .a', возможно, мы покажем вам, как организовать проект таким образом, который совместим с GNU Build System (напоминание: Autotools здесь чтобы помочь вам создать GNU Build System, а не любую систему сборки, к которой вы можете привыкнуть). – adl