libtool为.so文件名添加额外的“U”

时间:2008-12-15 10:33:14

标签: linux autotools libtool

我有一个用autotools构建的项目,分为两个文件夹;第一个, lib ,创建一些库,第二个, tools ,链接它们。
构建失败,因为libtool在重新链接时重命名库如下:

mylib.1.0.0 -> mylib.1.0.0U

重命名后,无论如何,以前的名称都没有恢复,也没有创建新的 mylib.1.0.0 ,所以像 mylib 这样的符号链接仍然指向没有额外 U 的名称,链接失败 有什么方法可以避免这种情况吗?或者甚至可以避免重新连接?我正在使用libtool 1.5.6版。

1 个答案:

答案 0 :(得分:1)

显然我明白了...
使用以下结构可以轻松重现该问题:

  • 一个 lib 文件夹,构建:
    • 利巴
    • libb ,具体取决于 liba
  • src 文件夹,构建 prog ,链接libb

然后你必须在lib / Makefile.am中指定它:

lib_LTLIBRARIES = \
    libb.la \
    liba.la

此时将生成liba.so.1.0.0U文件。改为指定(注意库的顺序已更改)

lib_LTLIBRARIES = \
    liba.la \
    libb.la

构建工作正常 我同意以正确的顺序指明事情无论如何都是最好的事情;我还不清楚的是,这是否是一个libtool bug ...