我创建了一个 person.proto ,我想将此文件编译为 *.go 。
我安装了包
go get -u github.com/golang/protobuf/protoc-gen-go
执行以下命令后
.\protoc.exe --go_out=. person.proto
我收到以下错误
--go_out: protoc-gen-go: The system cannot find the file specified.
我想使用缓冲协议(protocol),版本 2
我该如何解决这个错误?
我的原型(prototype)文件:
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 开发人员添加了这个答案。
但是,possible duplicate link @Flimzy 提到的那个不起作用,我已经完成了下面的所有 6 个步骤,然后令人惊讶的是,问题已经通过第 7 步解决了。此外,我错误地在 VSCode 终端上运行了该命令。
程序
protoc-win32.zip
来自“https://developers.google.com/protocol-buffers/docs/downloads”。 protoc.exe
的位置到您的 PATH 环境变量。另外,没那么必要,可以复制protoc.exe
到GOPATH
. protoc.exe --version
从命令提示符验证该过程。 GOPATH
环境变量已设置。 go get -u github.com/golang/protobuf/protoc-gen-go
来自 CMD/Powershell。这应该将二进制文件安装到 %GOPATH%/bin
. %GOPATH%/bin
到您的 PATH 环境变量。 .proto
文件然后运行 protoc --go_out=. *.proto
引用文献:
关于windows - 如何修复 ‘--go_out: protoc-gen-go: The system cannot find the file specified.’ 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55594238/