Я установил эти пакеты:
google.golang.org/grpc
github.com/golang/protobuf/protoc-gen-go
и экспортированный путь следующим образом:
export PATH=$PATH:/usr/local/go/bin
когда я пытаюсь скомпилировать прото-файл с помощью команды протокол, я вижу, что команда не найдена:
protoc --go_out=. helloworld/helloworld.proto
zsh: command not found: protoc
мой путь к проекту выглядит так: /home/my-username/go/src/github.com/my-username/helloworld
моя версия: go1.12.5
и я использую убунту 18.04
Когда я устанавливаю его с помощью двоичного файла, он работает, но скомпилированный файл go не содержит некоторых функций, таких как: RegisterGreeterServer или NewGreeterClient.
@Зеленый да установил
Попробуйте найти protoc в /usr/bin или /usr/local/bin.
нет такого файла
следовательно, установка protobuf не удалась. Протобуф доставить protoc.
Покажите свою переменную PATH, похоже, она как-то запуталась. echo $PATH
путь: /home/my-username/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr /games:/usr/local/games:/snap/bin:/usr/local/go/bin
Как вы установили protobuf? Показать все шаги.
Я установил его, используя это: go get -u github.com/golang/protobuf/protoc-gen-go, выполнив шаги github.com/golang/protobuf
Это библиотека, а не protobuf.
@Зеленый, как мне установить protobuf для go?
Например, gist.github.com/olivoil/a2e0e4f3427db8b6ef4a6374f9c4cb32
Я протестировал его, но когда он компилирует прото-файл, скомпилированный файл не содержит некоторых функций, таких как: RegisterGreeterServer или NewGreeterClient.
Эта другая проблема, не связанная с вашим вопросом
Пакет protobuf-compiler, представленный в упомянутой вами ссылке, не содержит этих функций при компиляции! Я знаю, что должен использовать пакет protoc-gen-go в golang, но не знаю, почему он не работает.

zsh: command not found: protoc указывает, что protoc не установлен на вашем компьютере. Для этого вам нужно загрузить двоичный файл с Официальные релизы, так как вы находитесь на ubuntu машине, я предлагаю вам скачать протокол-3.7.1-linux-x86_64.zip (это последняя protoc на момент написания этого ответа, вы должны проверить releases и скачать последнюю версию)
Вы можете скачать через браузер или использовать следующую команду:
wget "https://github.com/protocolbuffers/protobuf/releases/download/v3.7.1/protoc-3.7.1-linux-x86_64.zip" -O protoc-3.7.1-linux-x86_64.zip
Теперь разархивируйте, вы получите две папки: «bin» и «include».
Скопируйте bin/protoc в /usr/local/bin/protoc и include/google в /usr/local/include/google
Это правильно установит protoc на вашем компьютере.
Чтобы убедиться, что он установлен правильно, попробуйте выполнить команду protoc на своем терминале. Вы должны получить что-то вроде следующего
Если вы все еще сталкиваетесь с какими-либо проблемами, пожалуйста, дайте мне знать.
Надеюсь это поможет!
Спасибо, это помогло мне. Я обнаружил проблему и опубликовал свой ответ stackoverflow.com/a/56293038/6173668
Просто добавим, что файлы, которые входят в папку под /usr/local/include, должны быть скопированы вместе со структурой каталогов.
Наконец с помощью Амит я установил protoc. но когда я скомпилировал прото-файл с помощью этой команды
protoc --go_out=. add/add.proto
go скомпилированный файл не содержал некоторых функций, таких как, например, RegisterGreeterServer или NewGreeterClient.
от этот ответ я обнаружил проблему и добавил plugins=grpc, затем попробовал эту команду, и она сработала:
protoc --go_out=plugins=grpc:. add/add.proto
Вы устанавливаете прото?