问题

在windows下使用go-micro测试时需要安装protobuf并生成go版的proto,但是在生成的时候提示错误:

'protoc-gen-go' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
--go_out: protoc-gen-go: Plugin failed with status code 1.

解决方案

网上找到的方案有两种,并且我都进行了测试

方案一(实测好像没作用,不知道是不是因为windows的版本问题,未确定,但确实没作用)

  • 进入vscode的terminal或者进入系统cmd的GUI界面运行命运go -env获取GOPATH的路径
    在这里插入图片描述

  • 进入系统环境变量(右键电脑进入属性,然后点击环境变量就可以进入到设置系统变量的界面)在这里插入图片描述

  • 把第一步获得的GOPATH添加到系统变量的Path里面(我这里新开了一个变量并引用到Path里面,如果直接放到Path里面会提示”此环境变量太大,此对话框允许将值设置为最长2047个字符“)
    在这里插入图片描述

在这里插入图片描述在这里插入图片描述

  • 设置完之后直接运行你的protoc指令去生成go版的proto

方案二(实测可行,实在太高兴了终于OK了)

  • 首先下载一下protobuf的源码git clone https://github.com/golang/protobuf
    在这里插入图片描述
  • 进入protobuf/protoc-gen-go目录并进入到cmd中
    在这里插入图片描述
    在这里插入图片描述
  • 输入go build go build -o protoc-gen-go.exe main.go ,生成protoc-gen-go.exe文件
    在这里插入图片描述
  • 生成的文件放到c盘的windows/System32目录下
    在这里插入图片描述
  • 再去运行你的protoc指令就可以了(图里的是我自己的)
    在这里插入图片描述

.

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐