R.J*_*son 51 go protocol-buffers
使用protobuf版本2.6.1(我通过自制软件安装)
我想跑
$ protoc --go_out=../cloud/ *.proto
Run Code Online (Sandbox Code Playgroud)
我一直收到这个错误.
$ protoc-gen-go: program not found or is not executable
$ --go_out: protoc-gen-go: Plugin failed with status code 1.
Run Code Online (Sandbox Code Playgroud)
我在我的去路上安装了protoc-gen-go.其他人有这个问题吗?
Ken*_*rda 47
protoc-gen-go需要位于shell路径中,即PATH环境变量中列出的目录之一,它与Go路径不同.您可以通过protoc-gen-go在命令行输入来测试这个:如果它显示"未找到命令"(或类似),那么它不在你的PATH.
小智 23
运用
$ go get -u github.com/golang/protobuf/{proto,protoc-gen-go}
Run Code Online (Sandbox Code Playgroud)
比使用更安全
$ sudo apt-get install golang-goprotobuf-dev
Run Code Online (Sandbox Code Playgroud)
因为最新的protoc-gen-go是使用lib github.com/golang/protobuf/proto,但是protoc-gen-go在apt-get使用code.google.com/p/goprotobuf/proto现在不存在的lib .
Quy*_*ang 16
您应该正确定义您GO_PATH的go软件包所在的位置。换句话说,GO_PATH就是您的go工作区。本GO_PATH
应该是~/go。
protoc-gen-go应该在你的PATH。当您安装它后protoc-gen-go住$GO_PATH/bin。
将以下2条重要行添加到您的~/.bash_profile:
export GO_PATH=~/go
export PATH=$PATH:/$GO_PATH/bin
Run Code Online (Sandbox Code Playgroud)
然后,您需要启动一个新的shell会话,或者只需在此行中键入:
$ source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
小智 6
我有 Ubuntu 18.04.02 LTS 并protoc使用安装
sudo apt install protobuf-compiler
Run Code Online (Sandbox Code Playgroud)
我已经正确设置了 GOPATH 和 GOBIN,但是当我执行 a 时,
protoc --go_out=. <filename>
我还是得到了
protoc-gen-go: program not found or is not executable
--go_out: protoc-gen-go: Plugin failed with status code 1.
Run Code Online (Sandbox Code Playgroud)
阅读了很多地方后,发现这样做
go get -u github.com/golang/protobuf/protoc-gen-go
Run Code Online (Sandbox Code Playgroud)
能够解决这个问题。希望这对那里的人有帮助。