结构 sdk-go 'ld.exe: cannot find -lltdl' 错误



当我尝试获取fabric-sdk-go时,出现以下错误:

$ go get github.com/hyperledger/fabric-sdk-go/pkg/fabric-client
# github.com/hyperledger/fabric-sdk-go/vendor/github.com/miekg/pkcs11
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lltdl
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/6.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lltdl
collect2.exe: error: ld returned 1 exit status

有没有人知道问题是什么以及如何解决这个问题?

错误消息告诉我们缺少github.com/miekg/pkcs11所需的库libltdl。虽然你没有明确提到它,但我认为你正在使用MSYS2作为开发环境。执行以下步骤以安装缺少的库。

  1. 搜索缺少的库,在 MSYS2 终端中键入pacman -Ss ltdl以获取确切的包名称。在这里,ltdl是我们从错误消息中获得的与丢失库相关的关键字。你应该得到类似的东西:

    msys/libltdl 2.4.6-2  
    A system independent dlopen wrapper for GNU libtool
    

    从结果中我们知道缺少的库libltdl包中提供。这看起来微不足道,但有时一个库可能由多个包提供,例如,一个包的前缀为 32 位系统mingw-w64-i686-*,另一个包的前缀为 64 位系统mingw-w64-x86_64-*

  2. 通过以下方式安装软件包:pacman -S libltdl.
  3. 通过以下方式重新安装go软件包:go get -v github.com/hyperledger/fabric-sdk-go/pkg/fabric-client

最新更新