当我尝试使用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
有没有人知道问题是什么以及如何解决这个问题?
答案 0 :(得分:1)
错误消息告诉我们github.com/miekg/pkcs11
所需的库libltdl
丢失了。虽然你没有明确提到它,但我认为你正在使用MSYS2作为开发环境。执行以下步骤来安装缺少的库。
搜索缺少的库,在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位系统。
pacman -S libltdl
。go
重新安装go get -v github.com/hyperledger/fabric-sdk-go/pkg/fabric-client
包。