我有一个用autotools构建的项目,分为两个文件夹;第一个, lib ,创建一些库,第二个, tools ,链接它们。
构建失败,因为libtool在重新链接时重命名库如下:
mylib.1.0.0 -> mylib.1.0.0U
重命名后,无论如何,以前的名称都没有恢复,也没有创建新的 mylib.1.0.0 ,所以像 mylib 这样的符号链接仍然指向没有额外 U 的名称,链接失败 有什么方法可以避免这种情况吗?或者甚至可以避免重新连接?我正在使用libtool 1.5.6版。
答案 0 :(得分:1)
显然我明白了...
使用以下结构可以轻松重现该问题:
然后你必须在lib / Makefile.am中指定它:
lib_LTLIBRARIES = \
libb.la \
liba.la
此时将生成liba.so.1.0.0U文件。改为指定(注意库的顺序已更改)
lib_LTLIBRARIES = \
liba.la \
libb.la
构建工作正常 我同意以正确的顺序指明事情无论如何都是最好的事情;我还不清楚的是,这是否是一个libtool bug ...