运行“go build”命令时出现错误“调用s.statsd.SendLoop时参数不足”

问题描述 投票:-1回答:2

我正在尝试为我的项目运行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)

任何帮助,将不胜感激。

hyperledger-fabric hyperledger-fabric-sdk-go
2个回答
2
投票

根据代码结构,使用此库的不同版本: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

1
投票

在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行。

© www.soinside.com 2019 - 2024. All rights reserved.