【问题标题】:libtool adding extra 'U' to .so file nameslibtool 将额外的“U”添加到 .so 文件名
【发布时间】:2008-12-15 10:33:13
【问题描述】:

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

mylib.1.0.0 -> mylib.1.0.0U

重命名发生后,反正之前的名字没有恢复,也没有创建新的mylib.1.0.0,所以像mylib这样的符号链接还是指向到没有额外 U 的名称并且链接失败。
有没有办法避免这种情况?或者甚至可能完全避免重新链接?我使用的是 libtool 1.5.6 版。

【问题讨论】:

  • 您可能应该恢复上次编辑并正确回答问题。

标签: linux autotools libtool


【解决方案1】:

显然我明白了...
该问题很容易通过以下结构重现:

  • 一个 lib 文件夹,构建:
    • liba
    • 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 错误...

【讨论】:

    猜你喜欢
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    • 1970-01-01
    • 2019-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多