【问题标题】:How to fix ‘--go_out: protoc-gen-go: The system cannot find the file specified.’ error如何修复“--go_out:protoc-gen-go:系统找不到指定的文件。”错误
【发布时间】:2019-08-30 19:57:02
【问题描述】:

我创建了一个 person.proto 并且我想将此文件编译为 *.go 。 我安装了包

go get -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 go protocol-buffers


【解决方案1】:

说明

不幸的是,据说核心开发人员都没有在Windows上开发,因此我解决了这个问题并为Windows开发人员添加了这个答案。

但是,@Flimzy 提到的possible duplicate link 不起作用,我已经完成了下面的所有 6 个步骤,然后令人惊讶的是问题已经通过第 7 步解决了。此外,我错误地在 VSCode 终端上运行了该命令.


程序

  1. 从“https://developers.google.com/protocol-buffers/docs/downloads”下载protoc-win32.zip

  2. 解压缩文件,然后将protoc.exe 的位置添加到您的PATH 环境变量中。另外,没那么必要,可以将protoc.exe复制到GOPATH

  3. 更改/导航文件的 CMD/Powershell 路径,然后从命令提示符运行 protoc.exe --version 以验证该过程。

  4. 验证您的GOPATH 环境变量是否已设置。

  5. 从 CMD/Powershell 运行 go get -u github.com/golang/protobuf/protoc-gen-go。这应该将二进制文件安装到%GOPATH%/bin

  6. 将确切的 %GOPATH%/bin 添加到您的 PATH 环境变量中。

  7. 打开一个新的 CMD/Powershell,导航到您的 .proto 文件,然后运行 ​​protoc --go_out=. *.proto


参考资料:

  1. How to install protoc-gen-go (Go protocol buffer compiler plugin) in windows?
  2. protoc-gen-go: protoc fails to compile in Windows

【讨论】:

    猜你喜欢
    • 2019-05-03
    • 2020-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-07
    • 2016-09-19
    相关资源
    最近更新 更多