构建链代码时出现ltdl.h未找到的错误

6

我正尝试使用go build构建链代码。当我运行Go build命令时,它报告

.\hyperledger\fabric\vendor\github.com\miekg\pkcs11\pkcs11.g‌​o:29:18: 
fatal error:ltdl.h: No such file or directory
compilation terminated

我从这个链接安装了libtools。但我仍然遇到相同的错误。


请确保在gcc的include目录中存在ltdl.h。使用gcc -xc -E -v -列出include目录。 - putu
我已经得到了这个代码:"#include "..." 搜索从这里开始:#include <...> 搜索从这里开始: C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/include C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../include C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/include-fixed C:/TDM-GCC-64/bin/../lib/gcc/x86_64-w64-mingw32/5.1.0/../../../../x86_64-w64-mingw32/include 搜索列表结束。 - surender
你需要下载libtools的开发者版本,并将ltdl.h文件放入上述目录之一。 - putu
你能分享一下开发者版本的libtools下载链接吗? - surender
它在你在问题中提到的链接上。它被称为开发者文件。 - putu
5个回答

16

这在我的 Ubuntu 上有效:

sudo apt install libltdl-dev

9

如果您正在使用CentOS/RHEL 7,您可以使用以下代码:

yum install libtool-ltdl-devel

6

对于Mac电脑,请确保您已经安装了brew。以下命令适用于我:

brew install libtool

为了防止其他人遇到“需要libltdl”的问题,例如在OSX上安装XmlSec时,可以留下一个提示。这解决了我的问题。 - Jared Knipp

5
在Debian/Ubuntu环境下,尝试使用以下命令:

sudo apt安装libtool libltdl-dev


1
似乎只需要安装libtool就可以了。#sudo apt install libtool - malajisi

2

请确保在您的go build或go test命令中添加--tags nopkcs11。这样错误就不会再出现了。

例如:go build --tags nopkcs11

如果您正在开发和测试代码,这将编译您的链码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接