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

How to fix libtool: undefined symbols not allowed in x86_64-pc-msys shared

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

我收到的唯一消息是:

libtool: undefined symbols not allowed in x86_64-pc-msys shared ... only static will be built

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

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

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

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

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

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

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

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

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