📜  protoc-gen-go: program not found or is not executable 请使用绝对路径指定程序或确保程序在 PATH 系统变量中可用 --go_out: protoc-gen-go: Plugin failed with status code 1. -无论(1)

📅  最后修改于: 2023-12-03 15:03:52.625000             🧑  作者: Mango

protoc-gen-go: program not found or is not executable

当你在使用 Google Protocol Buffer (protobuf) 时,可能会遇到 protoc-gen-go: program not found or is not executable 这个错误。

错误原因

这个错误的原因是在运行 protoc 编译器时,它无法找到 protoc-gen-go 这个插件,或者找到了这个插件但是无法执行。

解决方案
安装 protoc-gen-go

首先需要确认 protoc-gen-go 是否已经安装。如果没有安装,可通过以下命令安装它:

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

这个命令会使用 Go 工具链来安装 protoc-gen-go ,并将它放到 $GOPATH/bin 目录下面。

添加路径到 PATH 中

如果已经正确安装了 protoc-gen-go ,并且在运行 protoc 编译器时仍然会报错,那么很可能是系统环境变量没有设置正确。

可以通过以下命令来查看 $PATH 环境变量中是否包含了 $GOPATH/bin

echo $PATH

如果没有包含 $GOPATH/bin ,那么需要手动将它添加到 $PATH 环境变量中。可以通过以下命令来添加:

export PATH=$PATH:$GOPATH/bin

这个命令会将 $GOPATH/bin 添加到当前的 $PATH 变量中。如果希望让这个改动在每次启动终端时都有效,可以将它添加到 $HOME/.bashrc 文件中。

使用绝对路径

如果仍然无法解决问题,那么可以尝试使用绝对路径来指定 protoc-gen-go 插件的路径。例如:

protoc --go_out=/path/to/protoc-gen-go --proto_path=$GOPATH/src example.proto
确认 GOPATH 是否正确设置

如果以上步骤都无法解决问题,那么可以检查 $GOPATH 是否正确设置。可以通过以下命令来查看 $GOPATH 的值:

echo $GOPATH

$GOPATH 应该是一个目录的路径,如果它是空或者设置错误,那么 protoc-gen-go 插件就无法正确执行,并会导致这个错误。

结论

以上是我所知道的有关于 protoc-gen-go: program not found or is not executable 这个错误的解决方案。希望能帮到遇到这个问题的你。