grpc生成pb.go以及grpc.pb.go文件遇到的问题

本文详细介绍了在Linux和Windows平台上如何使用protoc命令生成.pb.go文件,包括数据结构定义和RPC通讯代码。在Windows环境下,需要特别注意protoc-gen-go-grpc插件的编译和路径设置。此外,还提到了批处理脚本的编写方法以及解决protoc编译时可能出现的错误。对于初学者来说,这是一个全面的protoc和gRPC Go使用指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.生成pb.go(Linux 平台)

protoc --go_out=. --go_opt=paths=source_relative \
    --go-grpc_out=. --go-grpc_opt=paths=source_relative \
    helloworld/helloworld.proto

在这里插入图片描述

2.生成pb.go(Windows平台)

protoc 默认不支持go语言文件的输出,需按插件的形式来实现
通过protoc命令生成  xx.pb.go (数据结构的定义,及操作方法)
protoc  --plugin=protoc-gen-go.exe   --go_out=.    xx.proto

通过protoc命令生成  xx_grpc.pb.go (自动生成rpc通讯相关的代码)
protoc  --plugin=protoc-gen-go.exe   --go-grpc_out=.    xx.proto

若提示: --go-grpc_out: protoc-gen-go-grpc: 系统找不到指定的文件。

需在 grpc-go\cmd\protoc-gen-go-grpc 进行编译, go build即可。 把生成的protoc-gen-go-grpc.exe放到你的  GOPATH/bin 目录下

批处理proto生成XX.pb.go以及XX_grpc.pb.go

第一个生成XX_grpc.pb.go
第二个生成XX.pb.go

set proto_name=%~nx1
protoc  -I=./  --go-grpc_out=./  --plugin=protoc-gen-grpc=./protoc-gen-go.exe  %proto_name%
protoc  -I=./  --go_out=./  --plugin=./protoc-gen-go.exe  %proto_name%

Missing input file 的Protocol 报错解决

prop.proto冒号后面那个点和文件名之间有个空格,忘记加空格了不会编译通过,会报错:Missing input file.

https://www.cnblogs.com/yinzhengjie2020/p/12741943.html

文中脚本以及工具:
脚本以及工具链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值