Не могу скомпилировать файл прото в Ubuntu для Голанга - PullRequest
0 голосов
/ 24 мая 2019

Я установил эти пакеты:

google.golang.org / КПГР

github.com / golang / Protobuf / protoc-генераторных идти

и экспортированный путь, как это:

export PATH=$PATH:/usr/local/go/bin

когда я пытаюсь скомпилировать файл proto с помощью команды protoc , я вижу команду not found error:

protoc --go_out=. helloworld/helloworld.proto 

zsh: command not found: protoc

путь моего проекта выглядит так: /home/my-username/go/src/github.com/my-username/helloworld

my go версия: go1.12.5

и я использую Ubuntu 18.04

Когда я устанавливаю его с двоичным файлом, он работает, но скомпилированный файл go не содержит некоторых функций, таких как: RegisterGreeterServer или NewGreeterClient

Ответы [ 2 ]

1 голос
/ 24 мая 2019

zsh: command not found: protoc означает, что protoc не установлен на вашем компьютере. Для этого вам необходимо загрузить двоичный файл с официальных выпусков , поскольку вы работаете на компьютере ubuntu, я предлагаю вам загрузить protoc-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 на своем терминале. Вы должны получить что-то вроде следующего

enter image description here

Если у вас все еще есть проблемы, пожалуйста, дайте мне знать.

Надеюсь, это поможет!

0 голосов
/ 24 мая 2019

Наконец с помощью Amit я установил protoc.но когда я скомпилировал файл прото с помощью этой команды

protoc --go_out=. add/add.proto    

go, скомпилированный файл не содержал некоторых функций, таких как: RegisterGreeterServer или NewGreeterClient, например.

от этот ответ Iобнаружил проблему и добавил plugins=grpc, затем попробовал эту команду, и она заработала:

protoc --go_out=plugins=grpc:. add/add.proto
...