错误打印:
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 文件,突然报错了,以下是查找的原因的具体过程
- 是否是go 版本升级的原因
我第一反应可能是因为我升级go 到1.19 版本的缘故,然后我把 protoc ,protoc-gen-go 和 protoc-gen-go-grpc都升级到最新版本,可是依旧报错
- 通过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 或者 系统缓存的原因。
- 删除所有的protoc-gen-go-grpc.exe,清除系统缓存,重启电脑,但是报错依旧出现
- 把protoc 编译需要的几个exe换了个目录
这时居然可以了,原来原先的protoc.exe 目录下有个cmd.exe,这个命令会影响系统的cmd命令,而且这个cmd.exe 恰恰是protoc-gen-go-grpc 项目编译出来的
至此bug出现的原因也找到了