错误“protoc-gen-go:程序未找到或不可执行”

我正在尝试使用 Go gRPC构建示例应用程序,但无法使用“protoc”生成代码

我已经使用以下命令安装了所需的库和 Go 软件包:

  1. go get -u google.golang.org/grpc

  2. go get -u github.com/golang/protobuf/protoc-gen-go

我也尝试过设置路径,但没有运气。

示例“原型”文件:

syntax = "proto3";


package greet;

option go_package="greetpb";


service GreetService{}

错误信息:


“protoc-gen-go:程序未找到或不可执行

--go_out:protoc-gen-go:插件失败,状态代码为 1。”


芜湖不芜
浏览 125回答 6
6回答

眼眸繁星

必须添加以下软件包:sudo apt install protobuf-compiler就我而言,我还必须添加这一点:sudo apt install golang-goprotobuf-dev

白衣染霜花

我通过以下步骤解决了这个问题:使用以下命令安装 Go 库:go get -u github.com/golang/protobuf/{proto,protoc-gen-go}跑步vim ~/.bash_profile添加:export GO_PATH=~/goexport PATH=$PATH:/$GO_PATH/bin跑步source ~/.bash_profile

扬帆大鱼

去1.17+来自https://go.dev/doc/go-get-install-deprecation从 Go 1.17 开始,不推荐使用 go get 安装可执行文件。可以使用 go install 来代替。~/.bashrcexport GOPATH=$HOME/go export PATH=$PATH:$GOPATH/bin安装go install google.golang.org/protobuf/cmd/protoc-gen-go@latest去:下载 google.golang.org/protobuf v1.27.1go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest去:下载 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.2.0去:下载 google.golang.org/grpc v1.44.0文件.goprotoc --go-grpc_out=. *.proto环境苹果M1 ProGo版本go1.17.8 darwin/arm64

MYYA

有两种方法安装 protobuf 编译器。如果你使用的是 Ubuntu,你可以使用这个:sudo apt install protobuf-compiler当然还有标准的方法:go get -u github.com/golang/protobuf/{proto,protoc-gen-go}这里转发只是添加路径。假设当你安装 Go 时你这样做了,echo 'export GOPATH=$HOME/Go' >> $HOME/.bashrc source $HOME/.bashrc现在你可以扩展它:echo 'export PATH=$PATH:$GOPATH/bin' >> $HOME/.bashrc source $HOME/.bashrc奇怪的protoc是无法扩展~。

函数式编程

从 GitHub 存储库来看,这个解决方案对我有用。Go版本为go版本go1.14.1 Linux/amd64将其添加到.bashrc并获取它。export GOROOT=/usr/local/go export GOPATH=$HOME/go export GOBIN=$GOPATH/bin export PATH=$PATH:$GOROOT:$GOPATH:$GOBIN

红颜莎娜

确保您的 GOBIN 已在PATH变量中设置。否则,您可能会遇到此问题。GOBIN通过运行检查路径go env并确认GOBIN不为空。如果它是空的,那么尝试如下export GOPATH=$HOME/goexport PATH=$PATH:$GOPATH/binprotoc --go_out=plugins=grpc:. *.proto
打开App,查看更多内容
随时随地看视频慕课网APP