天天看點

解決 go-micro 代碼編譯報錯 undefined: balancer.PickOptions報錯資訊解決辦法其它已知條件

報錯資訊

# github.com/coreos/etcd/clientv3/balancer/picker
F:\go\pkg\mod\github.com\coreos\[email protected]+incompatible\clientv3\balancer\picker\err.go:37:44: undefined: balancer.PickOptions
F:\go\pkg\mod\github.com\coreos\[email protected]+incompatible\clientv3\balancer\picker\roundrobin_balanced.go:55:54: undefined: balancer.PickOptions
# github.com/coreos/etcd/clientv3/balancer/resolver/endpoint
F:\go\pkg\mod\github.com\coreos\[email protected]+incompatible\clientv3\balancer\resolver\endpoint\endpoint.go:114:78: undefined: resolver.BuildOption
F:\go\pkg\mod\github.com\coreos\[email protected]+incompatible\clientv3\balancer\resolver\endpoint\endpoint.go:182:31: undefined: resolver.ResolveNowOption
# github.com/micro/go-micro/transport/quic
F:\go\pkg\mod\github.com\micro\[email protected]\transport\quic\quic.go:54:12: q.s.Close undefined (type quic.Session has no field or method Close)
F:\go\pkg\mod\github.com\micro\[email protected]\transport\quic\quic.go:121:3: unknown field 'IdleTimeout' in struct literal of type quic.Config
           

解決辦法

在 go.mod 檔案中添加以下兩行 replace 解決編譯問題

replace google.golang.org/grpc => 
google.golang.org/grpc v1.26.0replace github.com/lucas-clemente/quic-go => 
github.com/lucas-clemente/quic-go v0.14.1
           

其它已知條件

  • 使用的 go-micro V1 版本;
  • go 的版本為 1.13/1.14 均是這個錯誤;