猿问

无法在ubuntu中为golang编译proto文件

我已经安装了这些包:

google.golang.org/grpc

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

并像这样导出路径:

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

当我尝试使用protoc命令编译 proto 文件时,我看到命令未找到错误:

protoc --go_out=. helloworld/helloworld.proto 

zsh: command not found: protoc

我的项目路径是这样的:/home/my-username/go/src/github.com/my-username/helloworld

我的go版本:go1.12.5

我使用 ubuntu 18.04

当我用二进制文件安装它时它可以工作,但编译的 go 文件不包含一些函数,如:RegisterGreeterServer 或 NewGreeterClient


一只斗牛犬
浏览 178回答 3
3回答

MMMHUHU

zsh: command not found: protoc表示protoc您的机器上未安装。为此,您需要从Official Releases下载二进制文件,因为您在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在终端上执行命令。你应该得到类似下面的东西如果您仍然遇到任何问题,请告诉我。

小怪兽爱吃肉

我知道现在讨论它为时已晚,但以防万一它可能对其他人有帮助,您可以从 github 地址 Github Repo下载 golang 的 protobuf并导航到 {$LIB_PATH}/protobuf/protoc-gen-go 并运行“go build”。从生成器中编译二进制文件,然后将其添加到您的路径以供使用功能

芜湖不芜

我安装了 protoc。但是当我用这个命令编译原型文件时protoc --go_out=. add/add.protogo 编译文件不包含一些功能,例如:RegisterGreeterServer 或 NewGreeterClient。发现了问题并添加了plugins=grpc,然后尝试了这个命令并且它起作用了:protoc --go_out=plugins=grpc:. add/add.proto
随时随地看视频慕课网APP

相关分类

Go
我要回答