protobuf_name_conflict问题解决

记一次Protobuf Name Conflict问题


起因

一个项目里面有grpc的使用,在编译的时候一直报name conflict的错误,之前没有报panic,只有报warning,加上没有go mod版本管理,问题一直出

问题版本

github.com/golang/protobuf:v1.5.2

protobuf_name_conflict问题解决_第1张图片


通过源码看一下区别

trace下去就是在ignoreConflict这个函数出的问题

protobuf_name_conflict问题解决_第2张图片

github.com/golang/protobuf:v1.5.2这个的源码

调用的是google.golang.com/protobuf:v1.26.0,这里面已经改成了panic的报错

protobuf_name_conflict问题解决_第3张图片

github.com/golang/protobuf:v1.4.3底层调用的源码

调用的是google.golang.com/protobuf:v1.23.0,这里面还是warning提示

protobuf_name_conflict问题解决_第4张图片


解决方法

把go.mod里面github.com/golang/protobuf的版本改为v1.4.3

replace (
    github.com/golang/protobuf => github.com/golang/protobuf:v1.4.3
)

你可能感兴趣的:(Go,go,protobuf,conflict,bug)