首页 > 解决方案 > protoc-gen-go-rpc:程序未找到或不可执行 - 我从哪里获得 protoc-gen-go-rpc?

问题描述

我们正在使用 protoc-gen-go v2(v2 是 google.golang.org/protobuf,v1 是 github.com/golang/protobuf)

当我们尝试编译我们的 gRPC 服务时,它告诉我们plugins不再支持,我们应该改用--go-grpc_out

$ protoc --go_out=plugins=grpc:. *.proto
--go_out: protoc-gen-go: plugins are not supported; use 'protoc --go-grpc_out=...' to generate gRPC

使用时--go-grpc_out,它告诉我们我们需要protoc-gen-go-rpc

$ protoc --go-rpc_out=. *.proto
protoc-gen-go-rpc: program not found or is not executable
Please specify a program using absolute path or make sure the program is available in your PATH system variable

你在哪里找到,或者你如何安装protoc-gen-go-rpc

更新:我们刚刚在 Reddit 上找到了这篇文章以获取更多信息 https://www.reddit.com/r/golang/comments/fe3a4k/documentation_on_getting_grpc_working_with_the/

标签: goprotocol-buffersgrpcprotocgrpc-go

解决方案


我不确定protoc-gen-go v2,因为我能看到的最新protobuf标签是v1.4

这是我们如何调用为没有外部依赖项(例如,没有外部原型文件导入)protoc的服务生成源代码的示例。crab唯一的二进制依赖是protoc-gen-go

protoc -I $(pwd) -I /home/isaev/go/src \
 $(pwd)/crab/error_codes.proto \
 $(pwd)/crab/goproxy.proto \
 $(pwd)/crab/crab.proto \
 --go_out=plugins=grpc:/tmp/crab

推荐阅读