当前位置: 首页 > 知识库问答 >
问题:

proc-gen-go-grpc:未找到或无法执行程序

易修洁
2023-03-14

go版本:go版本go1.14 linux/amd64

go.mod

module [redacted]

go 1.14

require (
    github.com/golang/protobuf v1.4.0-rc.2
    google.golang.org/grpc v1.27.1
    google.golang.org/protobuf v1.20.0 // indirect
)

我正在运行以下命令:

protoc -I ./src/pbdefs/protos/ --go-grpc_out=. src/pbdefs/protos/*.proto

生成我的GRPC输出文件。proto文件,我收到一个错误

protoc-gen-go-grpc: 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
--go-grpc_out: protoc-gen-go-grpc: Plugin failed with status code 1.

共有3个答案

龙枫
2023-03-14

好的,刚刚发现,根据https://github.com/protocolbuffers/protobuf-go/releases/tag/v1.20.0

v1.20 protoc gen go不支持生成gRPC服务定义。未来,gRPC服务生成将由go gRPC项目提供的新protoc gen go gRPC插件支持。

github.com/golang/protobuf版本继续支持gRPC,并将在可预见的未来继续这样做。

编辑29/05/2020:

根据github上的跟踪问题,在评论中@Mark更新后,protoc gen go grpc现已合并。然而,根据同样的问题:

即使合并了,它也未发布(v0.0),可能会发生更改。我们确实计划添加一个要求,即未实现的服务实现必须包含在所有注册的服务中,并按照@neild的建议,以命令行参数的形式提供一个逃生舱。

姜德容
2023-03-14

Golang Protobuf发布了Go协议缓冲区的新版本

由于APIv2与APIv1不向后兼容,因此我们需要为新API调整所有Golang代码。

您可以在此处和此处了解有关新API的更多信息

迁移步骤:

为了运行新的代码生成,需要安装以下gRPC gen插件:

go get -u google.golang.org/protobuf/cmd/protoc-gen-go
go install google.golang.org/protobuf/cmd/protoc-gen-go

go get -u google.golang.org/grpc/cmd/protoc-gen-go-grpc
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc

然后使用以下命令生成代码。

  # generate the messages
 protoc --go_out="$GO_GEN_PATH" -I "$dependecies" "$proto"

 # generate the services
 protoc --go-grpc_out="$GO_GEN_PATH" -I "$dependecies" "$proto"
顾高翰
2023-03-14

缺少的插件已在https://github.com/grpc/grpc-go.实现

下面的命令应该修复它

go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
 类似资料:
  • 问题内容: :go版本go1.14 linux / amd64 go.mod 我正在运行以下命令: 从文件生成我的GRPC输出文件,出现错误 问题答案: 好的,根据https://github.com/protocolbuffers/protobuf- go/releases/tag/v1.20.0 刚刚找到 v1.20 不支持生成gRPC服务定义。将来,Go gRPC项目将提供一个新的proto

  • 我正试图从这个项目中运行makefile命令'gen'https://github.com/penthaapatel/grpcblog.命令是:但是我得到一个错误: 我使用Ubuntu 20.04?Golang-1.13.8,其中$GOROOT= /home/deckard/。本地/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbi

  • 我试图用Go gRPC构建一个示例应用程序,但我无法使用“protoc”生成代码 我已使用以下工具安装了所需的库和Go软件包: 去谷歌吧。戈朗。组织/grpc 我也尝试过设置路径,但没有成功。 “proto”文件示例: 错误消息: “protoc gen go:程序未找到或不可执行--go\u out:protoc gen go:插件失败,状态代码为1。”

  • 我们使用的是proc-gen-go v2(v2google.golang.org/protobuf,v1github.com/golang/protobuf) 当我们试图编译gRPC服务时,它告诉我们不再支持插件,我们应该使用go-gRPC\u out: 当使用go-grpc\u out时,它告诉我们需要protoc gen go rpc: 您在哪里找到或如何安装protoc gen go rpc

  • github。com/gogo/protobuf/proto[ok]github。com/gogo/protobuf/protoc-gen-gogo[ok]github。com/gogo/protobuf/gogoproto[确定]谷歌。戈朗。组织/grpc[确定] 协议--gogo_out=. greet 请帮帮我

  • 我有一个。Net 4.7.2项目,我已经用NuGet包v2.26.0设置了消息项目。我的环境文件路径中有protoc,可以运行protoc--version等命令。 尝试生成grpc代码时,我运行以下命令: C: \样本\MyGrpc 我正在以管理员身份打开的Windows cmd提示符中运行此命令。 我的主要Visual Studio项目文件夹是Grpc,下面有消息项目。 我不确定我被拒绝访问什