Генерация 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 шт):

Автор решения: Pak Uula

protoc - это компиляторный фронтэнд, который парсит .proto файлы. Для генерации файлов на языке Go ему нужен кодогенератор protoc-gen-go.

Кодогенератор устанавливается командой

go install google.golang.org/protobuf/cmd/protoc-gen-go@latest

в директорию $GOPATH/bin. Если вы хотите установить его в какую-то другую директорию, задайте её в переменной окружения $GOBIN.

Соответственно, для того, чтобы protoc работал, необходимо, чтобы директория $GOPATH/bin была в составе переменной окружения PATH.

→ Ссылка