Fabric-sdk-go'ld.exe:找不到-lltdl'错误

时间:2017-07-22 07:33:49

标签: go hyperledger-fabric

当我尝试使用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

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

1 个答案:

答案 0 :(得分:1)

错误消息告诉我们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包中提供了缺少的库。这似乎微不足道,但有时库可能由多个包提供,例如一个包,其前缀为mingw-w64-i686-*用于32位系统,另一个包含前缀mingw-w64-x86_64-*用于64位系统。

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