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.
好的,刚刚发现,根据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的建议,以命令行参数的形式提供一个逃生舱。
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"
缺少的插件已在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,下面有消息项目。 我不确定我被拒绝访问什