设置autotools库文件名并稍后引用它

时间:2017-11-07 18:18:58

标签: makefile autotools autoconf automake libtool

我使用autotools构建一个库,稍后将由另一个程序加载。这个库必须有一个.so扩展名,无论我在哪个平台上(这是程序加载它所强加的要求),我也希望它没有版本说明符。如何设置此类库的输出名称?

这是Makefile.am的样子

lib_LTLIBRARIES = mylib.la
mylib_la_SOURCES = mylib.c
mylib_la_CPPFLAGS = $(LTDLINCL)
mylib_la_CFLAGS = $(CFLAGS) $(LIBFFI_CFLAGS)
LDADD = $(LIBLTDL) -dlopen self

通过libtool联机帮助页,我似乎需要设置-install_name,但我不会在生成的Makefile任何地方看到它被引用。

我还需要能够在Makefiles的其他地方引用这个库的输出目录(用于测试目的),是否有一个包含其基本名称或完整路径的变量?

1 个答案:

答案 0 :(得分:0)

  

如何设置此类库的输出名称?

库的输出名称将是lib_LTLIBRARIES中没有后缀.a的名称。它默认会生成一个共享库 - .so。因此,您无需指定任何其他内容。

  

我还需要能够在Makefile的其他地方引用这个库的输出目录(用于测试目的),是否有一个包含其基本名称或完整路径的变量?

Makefile中的变量$(libdir)@libdir@将指向库目录的完整路径。