我正在尝试为我的项目运行go build命令,但它退出时出现以下错误。
alpha@GHOST-RIDER:~/GoWorkspace/src/github.com/hyperledger/firstproject$ go build
# github.com/hyperledger/fabric-sdk-go/internal/github.com/hyperledger/fabric/core/operations
../fabric-sdk-go/internal/github.com/hyperledger/fabric/core/operations/system.go:227:23: not enough arguments in call to s.statsd.SendLoop
have (<-chan time.Time, string, string)
want (context.Context, <-chan time.Time, string, string)
任何帮助,将不胜感激。
根据代码结构,使用此库的不同版本:github.com/go-kit/kit/metrics/statsd
。如果您遵循System
结构的statsd
属性,则可以在导入时获得参考。
在这个lib的master分支中,SendLoop
函数需要4个属性,因此这是根本原因。因此,当您在本地环境中进行编译时,这会导致错误。
我遇到了同样的问题并通过检查库的标签来解决这个问题,如下所示:
cd $GOPATH/src/github.com/go-kit/kit
git fetch --tags
git checkout v0.8.0
在hyperledger-fabric-go-sdk群聊中找到了解决方案。
在context.Background()
中添加s.statsd.SendLoop
,如下所示
s.statsd.SendLoop(context.Background(), s.sendTicker.C, network, address)
在fabric-sdk-go/internal/github.com/hyperledger/fabric/core/operations/system.go
文件第227行。