当前位置: 首页 > 知识库问答 >
问题:

如何修复“--go\u out:protoc gen go:系统找不到指定的文件。”错误

赫连法
2023-03-14

我创造了一个人。proto和我想把这个文件编译成*。去我安装了软件包

去找github。com/golang/protobuf/protoc gen go

执行以下命令后

.\protoc.exe--go_out=.person.proto

我得到下面的错误

--go\u out:protoc gen go:系统找不到指定的文件。

我想使用缓冲协议,版本2

如何修复此错误?

我的原型文件:

golang prettyprint-override">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;
}

共有1个答案

刘明朗
2023-03-14

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

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

>

  • 从"https://developers.google.com/protocol-buffers/docs/downloads"下载protoc-win32.zip

    解压缩文件,然后添加协议的位置。exe到PATH环境变量。此外,没有太多必要,您可以复制协议。exe到GOPATH。

    将CMD/Powershell路径更改/导航到该文件,然后运行protoc。exe--版本,以验证过程。

    验证是否设置了环境变量GOPATH。

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

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

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

    参考文献:

    1. 如何在windows中安装proc-gen-go(Go协议缓冲区编译器插件)?
    2. 协议-gen-go:协议在Windows中编译失败

  •  类似资料:
    • 问题内容: 我正在用Java编写一个程序,该程序将执行winrar并将一个供我使用的jar文件解压缩到该文件夹​​中。我的Java代码是这样的 执行此操作时,出现此错误 谁能告诉我为什么会遇到这样的问题。为了使其起作用,我需要在代码中进行哪些更改? 问题答案: 假设位于中,则能够找到它,如果没有,则需要提供到它的完全限定路径,例如,假设已安装在其中,则需要使用类似… 就个人而言,我建议您使用它,因

    • keytool错误:Java . io . file not found exception:API . sepa . express . CRT(系统找不到指定的文件) 我尝试了在堆栈溢出中找到的各种示例。 和 已尝试以管理员身份使用cmd。我已将我的证书文件放在桌面上。当我试图复制时: C: \程序文件\Java\jdk1.8.0_60\jre\lib\security 它不接受证书文件。 完

    • 问题内容: 我有一个名为 的文件。 它与我的文件位于同一目录中。 但是,当我尝试通过以下代码访问它时,找不到此文件,发生错误: 这是我的代码: 问题答案: 直接将word.txt作为项目根文件夹的子级和src的对等方放置 免责声明:我想解释一下为什么这种方法适用于这种特殊情况,以及为什么它可能不适用于其他情况。 工作原理: 使用或任何其他变体时,你正在文件系统上相对于“工作目录”查找文件。工作目录

    • 问题内容: 我收到以下错误 但我可以肯定地说,我已经在src,bin和根目录下创建了一个in.txt文件。我还尝试在主要参数中指定完整目录,但仍然无法正常工作。为什么Eclipse不选择它? 问题答案: 我获取了您的代码,并使用以下命令行参数执行了该代码: 它完全没有问题。检查您的命令行。

    • 问题内容: 我在Windows和Linux中运行的Pydub模块有问题。当我尝试这样打开mp3文件时: 控制台向我显示下一条消息: WindowsError:[错误2]系统找不到指定的文件 但是…我将文件(test.mp3)与脚本放在同一文件夹中,名称正确。 为什么我有这个问题?(在Linux中,具有相同的错误) 问题答案: 确保已安装 http://www.ffmpeg.org/。您可以从此官方

    • 问题内容: 我正在制作一个打开并读取文件的程序。这是我的代码: 但是当我跑步时,出现以下错误: 我和位于同一目录中的以下位置: 我想知道我在做什么错? 问题答案: 我已经复制了您的代码,并且运行正常。 我怀疑您在hello.txt的实际文件名中仅存在一些问题,或者您在错误的目录中运行。考虑通过@ Eng.Fouad建议的方法进行验证