automake和libtool:将库(仅)链接到新的lib中

时间:2016-10-11 13:35:43

标签: autotools libtool

我正在尝试编写一个Makefile.am来将许多静态库链接到一个单独的库中(不需要额外的源代码,我只想要一个库合并)。 这是我的Makefile.am文件:

#target lib xxxx linking yyyy and zzzz libs (no source at this level):          
noinst_LTLIBRARIES = lib_xxxx.la                                     
lib_xxxx_la_SOURCES =                                                

#member libs:                                                             
SUBDIRS = yyyy                                                               
lib_xxxx_la_LIBADD = yyyy/yyyy.la 

SUBDIRS += zzzz                                                                
lib_zzzz_la_LIBADD = zzzz/zzzz.la 

我没有规定制定目标'全部'。 即使我压制线:

lib_xxxx_la_SOURCES =    

如何通过telke automake来做到这一点?

2 个答案:

答案 0 :(得分:0)

库合并不像automake中的那样工作。您的库是noinst库,这意味着如果没有其他原因可以构建它,它就不会。

此外,您宣布图书馆的方式,不太可能做您打算做的事情。特别是用于定义原始库的任何标志都将被忽略,因为新库将使用存档而不是共享对象。

如果你定义了你想要做的事情会更简单,最重要的是为什么,因为我不认为有很多(如果有的话)尝试这样的好理由。

答案 1 :(得分:-1)

我的问题中的Makefile.am(包括lib_xxxx_la_SOURCES =行确实在使用更新版本的autotools(以及一个完整的新项目,如果这很重要)时可以正常工作。