【问题标题】:How to fix libtool: undefined symbols not allowed in x86_64-pc-msys shared如何修复 libtool:x86_64-pc-msys 共享中不允许未定义的符号
【发布时间】:2020-04-14 18:49:57
【问题描述】:

我正在尝试为 msys2 构建 heimdal 包。令我沮丧的是,在第一个组成库的链接过程中,roken、dll 无法构建,这会导致进一步的连锁反应。

我得到的唯一消息是:

libtool:x86_64-pc-msys shared 中不允许未定义的符号...只会构建静态

但是,没有提供关于哪些符号未定义的信息。我怎样才能知道呢?

如果我打开命令 wuth make V=1 的输出,我会得到从大量 .lo 文件链接的 libtool 命令。如果我尝试在它们上运行gcc(从那里复制命令),它不会将它们识别为任何东西。

我正在尝试按照msys2 package build script for heimdal 中的说明进行操作。

【问题讨论】:

    标签: msys2 libtool


    【解决方案1】:

    在 Windows 上,不允许在允许未定义符号的情况下构建共享库。

    尝试使用-Wl,-no-undefined 链接器标志进行构建,例如将LDFLAGS="-Wl,-no-undefined" 添加到./configure 命令。

    如果这不起作用,请在 ./configure 之后和 make 之前尝试这个:

    sed -i.bak -e "s/\(allow_undefined=\)yes/\1no/" libtool
    

    如果您之前已经有一个失败的构建,您还应该在再次运行 make 之前清理所有类似这样的 .la 文件:

    rm $(find -name '*.la')
    

    【讨论】:

      猜你喜欢
      • 2013-07-03
      • 1970-01-01
      • 1970-01-01
      • 2016-10-16
      • 1970-01-01
      • 1970-01-01
      • 2011-02-28
      • 2021-08-20
      • 1970-01-01
      相关资源
      最近更新 更多