[英]How to fix ‘--go_out: protoc-gen-go: The system cannot find the file specified.’ error
我创建了一个 person.proto 并且我想将此文件编译为 *.go 。 我安装了包
去 -u github.com/golang/protobuf/protoc-gen-go
执行以下命令后
.\\protoc.exe --go_out=。 人.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;
}
不幸的是,据说没有一个核心开发人员在Windows上开发,因此我解决了这个问题并为Windows开发人员添加了这个答案。
但是,@Flimzy 提到的可能重复链接不起作用,我已经完成了下面的所有 6 个步骤,然后令人惊讶的是,问题在第 7 步中得到了解决。此外,我错误地在 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
protoc --go_out=. *.proto
参考:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.