问题:
protoc生成service.pb.go时无报错,但在引用时报错:
panic: proto: file “proto/service.proto” has a name conflict over DESC
原因:
同个package下有同名变量已经被使用,所以导致变量冲突
解决办法:
方案一:
调整package,换成和有冲突的pb不一样的包名
syntax = "proto3";
option go_package = "./pb";
package service_pb; //调整前和另一个proto文件使用的都是package pb;
方案二:
降protobuf版本,修改go.mod里面github.com/golang/protobuf的版本改为v1.4.3
因为v1.4.3名字冲突是warn,v1.4.3之后是panic
replace (
github.com/golang/protobuf => github.com/golang/protobuf:v1.4.3
)
参考链接:
https://blog.miuyun.work/archives/17368741
https://blog.csdn.net/weixin_40242845/article/details/118366192
如有不对,烦请指出,感谢~