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

问题描述 投票:0回答:1

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

我收到的唯一消息是:

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

但是,没有提供有关未定义符号的信息。我如何找到答案?

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

我正在尝试遵循msys2 package build script for heimdal中概述的说明。

msys2 libtool
1个回答
0
投票

在Windows上,不允许在建立未定义符号的同时建立共享库。

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

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

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

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

rm $(find -name '*.la')
© www.soinside.com 2019 - 2024. All rights reserved.