我创建一个person.proto,我想将此文件编译为* .go。 我安装了软件包
go get -u github.com/golang/protobuf/protoc-gen-go
执行以下命令后
。\ protoc.exe --go_out =。 person.proto
我收到下面的错误
-go_out:protoc-gen-go:系统找不到指定的文件。
我要使用2版缓冲协议
如何解决此错误?
我的原始文件:
package communication;
message Person {
required string name = 1;
required int32 id = 2;
optional string email = 3;
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
message PhoneNumber {
required string number = 1;
optional PhoneType type = 2 [default = HOME];
}
repeated PhoneNumber phone = 4;
}
答案 0 :(得分:1)
不幸的是,据说没有一个核心开发人员在Windows上开发,因此我解决了这个问题,并为Windows开发人员添加了这个答案。
但是,@ Flimzy提到的possible duplicate link不起作用,我完成了下面的所有6个步骤,然后问题出人意料地在第7步解决了。此外,错误地,我在a VSCode终端。
从“ https://developers.google.com/protocol-buffers/docs/downloads”下载protoc-win32.zip
。
解压缩文件,然后将protoc.exe
的位置添加到PATH环境变量中。另外,您并不需要那么多,您可以将protoc.exe
复制到GOPATH
。
更改/导航到文件的CMD / Powershell路径,然后从命令提示符运行protoc.exe --version
以验证过程。
验证是否设置了GOPATH
环境变量。
从CMD / Powershell运行go get -u github.com/golang/protobuf/protoc-gen-go
。这会将二进制文件安装到%GOPATH%/bin
。
将确切的%GOPATH%/bin
添加到您的PATH环境变量中。
打开一个新的CMD / Powershell,导航到您的.proto
文件,然后运行protoc --go_out=. *.proto
参考文献: