如何修复 libtool:x86_64-pc-msys 共享中不允许未定义的符号

Srv*_*v19 1 libtool msys2

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

我收到的唯一消息是:

libtool:x86_64-pc-msys 共享中不允许未定义的符号...仅构建静态

但是,没有提供有关哪些符号未定义的信息。我怎样才能找到它?

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

我正在尝试遵循heimdal 的 msys2 包构建脚本中概述的说明。

Bre*_*ers 5

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

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

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

sed -i.bak -e "s/\(allow_undefined=\)yes/\1no/" libtool
Run Code Online (Sandbox Code Playgroud)

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

rm $(find -name '*.la')
Run Code Online (Sandbox Code Playgroud)