proto报错 --- panic: proto: file “proto/service.proto“ has a name conflict over DESC

当protoc生成service.pb.go时遇到名称冲突导致panic,原因是在同一package中有同名变量。解决办法包括调整protobuf文件的package名以避免冲突,或者将protobuf版本降级到v1.4.3,因为该版本将冲突视为警告而非错误。
摘要由CSDN通过智能技术生成

问题:

  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
 
 
如有不对,烦请指出,感谢~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值