无法在ubuntu中为golang编译原始文件

时间:2019-05-24 07:31:33

标签: go protocol-buffers grpc protoc

我已经安装了这些软件包:

google.golang.org/grpc

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

并按以下方式导出路径:

protoc --go_out=. helloworld/helloworld.proto 

zsh: command not found: protoc

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

/home/my-username/go/src/github.com/my-username/helloworld

我的项目路径如下:import wx app = wx.App() frame = wx.Frame(None, title="Simple") frame.Show() app.MainLoop()

我的go版本:go1.12.5

我使用ubuntu 18.04

当我使用二进制文件安装它时,它可以工作,但是编译后的go文件不包含某些功能,例如:RegisterGreeterServer或NewGreeterClient

2 个答案:

答案 0 :(得分:1)

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命令。您应该会得到类似

的信息

enter image description here

如果您仍然遇到任何问题,请告诉我。

希望这会有所帮助!

答案 1 :(得分:0)

最后,在Amit的帮助下,我安装了协议。但是当我用这个命令编译原始文件时

protoc --go_out=. add/add.proto    

go编译文件不包含某些功能,例如:RegisterGreeterServer或NewGreeterClient。

通过this reply,我发现了问题并添加了plugins=grpc,然后尝试了此命令,它起作用了:

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