protoc 编译proto 文件报错

错误打印:

2022/09/07 17:23:31 ERROR: [profiling] error parsing flags: when -address isn't specified, you must include -stream-stats-catapult-json
--go_out: protoc-gen-go: Plugin failed with status code 1.

今天利用protoc 编译proto 生成.go 文件,突然报错了,以下是查找的原因的具体过程

  1. 是否是go 版本升级的原因

我第一反应可能是因为我升级go 到1.19 版本的缘故,然后我把 protoc ,protoc-gen-go 和 protoc-gen-go-grpc都升级到最新版本,可是依旧报错

  1. 通过protoc-gen-go 和 protoc-gen-go-grpc 项目源码查找原因
  • protoc-gen-go 源码路径
https://github.com/protocolbuffers/protobuf-go
  • protoc-gen-go-grpc
https://github.com/grpc/grpc-go

通过查找源码中的报错信息,确定报错是在protoc-gen-go-grpc中打印出来的,于是,添加打印,替换protoc-gen-go-grpc.exe

于是乎诡异的一幕出现了,打印竟然没有执行,最后我把protoc-gen-go-grpc.exe删了,依然能够打印,至此我怀疑是是否有其它protoc-gen-go-grpc.exe 或者 系统缓存的原因。

  1. 删除所有的protoc-gen-go-grpc.exe,清除系统缓存,重启电脑,但是报错依旧出现
  2. 把protoc 编译需要的几个exe换了个目录
    这时居然可以了,原来原先的protoc.exe 目录下有个cmd.exe,这个命令会影响系统的cmd命令,而且这个cmd.exe 恰恰是protoc-gen-go-grpc 项目编译出来的
    在这里插入图片描述
    至此bug出现的原因也找到了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值