首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Automake和库

Automake和库
EN

Stack Overflow用户
提问于 2012-03-24 20:41:56
回答 1查看 1.7K关注 0票数 2

我正在尝试用自动工具生成共享和静态库,到目前为止我已经

configure.ac:

代码语言:javascript
复制
  # 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:

代码语言:javascript
复制
lib_LTLIBRARIES = libmemory.la
libmemory_la_SOURCES = src/memory.c
libmemory_la_CFLAGS = -I./include

我只想让他在这个目录中创建两个文件,.a和.so,但是他创建了./libs目录和下面的文件:

代码语言:javascript
复制
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

那么我应该怎么做,在动态版本中创建一个简单的静态库呢?

EN

回答 1

Stack Overflow用户

发布于 2012-03-25 03:24:11

.libs是一个特定于libtool内部实现的目录,换句话说,您不必过多考虑它。您将获得一个libmemory.la,它表示所有变体(静态、共享、..)都是你自己造的。在执行make install时,它们都将按照预期正确安装。

库使用各种方案进行版本控制,而libtool必须缺省为某个值,这就是为什么您会得到一个libememy.so.0.0.0。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9851859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档