Генерация golang кода из proto файла
При попытке генерации (protoc -I=proto --go_out=. proto/*.proto) выдает ошибку:
"protoc-gen-go" не является внутренней или внешней командой, исполняемой программой или пакетным файлом. --go_out: protoc-gen-go: Plugin failed with status code 1.
protoc установлен, в PATH добавлен путь, команда go get github.com/golang/protobuf/protoc-gen-go выполнена. В чем может быть проблема.
Ответы (1 шт):
protoc - это компиляторный фронтэнд, который парсит .proto файлы. Для генерации файлов на языке Go ему нужен кодогенератор protoc-gen-go.
Кодогенератор устанавливается командой
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
в директорию $GOPATH/bin. Если вы хотите установить его в какую-то другую директорию, задайте её в переменной окружения $GOBIN.
Соответственно, для того, чтобы protoc работал, необходимо, чтобы директория $GOPATH/bin была в составе переменной окружения PATH.