gpt4 book ai didi

linux - libtool 添加额外的 'U' 到 .so 文件名

转载 作者:太空狗 更新时间:2023-10-29 12:38:49 24 4
gpt4 key购买 nike

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

mylib.1.0.0 -> mylib.1.0.0U

重命名之后,无论如何,没有恢复以前的名称,也没有创建新的mylib.1.0.0,所以像mylib这样的符号链接(symbolic link)仍然指向到没有额外 U 的名称,链接失败。
有什么办法可以避免这种情况吗?或者甚至可能完全避免重新链接?我使用的是 libtool 版本 1.5.6。

最佳答案

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

  • 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 错误...

关于linux - libtool 添加额外的 'U' 到 .so 文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/367969/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com