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)

任何帮助,将不胜感激。

4

2 回答 2

3

根据代码结构正在使用该库的不同版本:github.com/go-kit/kit/metrics/statsd. 如果您遵循System结构的statsd属性,则可以访问导入的引用。

在这个库的 master 分支中,SendLoop函数需要4 个属性,所以这是根本原因。因此,当您在本地环境中编译时,这会导致错误。

我遇到了同样的问题,并通过检查如下库的标签来解决它:

cd $GOPATH/src/github.com/go-kit/kit
git fetch --tags
git checkout v0.8.0
于 2019-04-24T14:47:42.317 回答
2

在 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 行的文件中。

于 2019-04-23T14:54:50.963 回答