protoc-gen-gogofaster: program not found or is not executable MacBookPro 搭建golang和protobuf开发环境

神奈备命 · · 5889 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

        为了编译公司的ios端的一个sdk,需要在我的mac上下载公司的go项目源码和搭建相关开发环境。但是在初期就遇到了一些问题。这里记录一下。

         我安装golang是使用命令行安装,命令网上搜的,运行go env也没有问题,go get等命令也能正常执行。公司源码项目的编译是执行make 命令,因为目录下有对应的makefile文件。但是编译后报错,内容如下:

cd proto; protoc --gogofaster_out=. *.proto -I . -I /Users/biaohu/go/pkg/mod/github.com/gogo/protobuf@v1.3.1/protobuf -I /Users/biaohu/go/pkg/mod/github.com/gogo/protobuf@v1.3.1

protoc-gen-gogofaster: program not found or is not executable

Please specify a program using absolute path or make sure the program is available in your PATH system variable

--gogofaster_out: protoc-gen-gogofaster: Plugin failed with status code 1.

make: *** [proto/common.pb.go] Error 1

       看意思是    缺少protoc一些项目什么的,在百度和谷歌搜索了很久,并没有找到符合的问题。在同事帮助下折腾了很久,明明安装了protoc的一系列工具,包括这个googfasteer,而且在相应目录下也找到了工程,但是最后还是报这个错误。我甚至还卸载了go,删除了关于go的所有目录,并按照官网教程重新安装,但是最后还是报这个错误。

       最后解决了问题,在profile文件中配置了golang和protoc的环境变量,之前并没有完整的在profile文件中设置golang的环境变量,因为看到go env和go get命令是正常的,所以没有在乎。而protoc的一些环境变量是依赖于golang的路径和环境变量的,所以最好要在profile文件里正确的配置gpolang和protoc的环境变量。

我是在Users/biaohu/.bash_profile文件里设置的,这个跟每个人各自的电脑环境有关系,添加内容如下:

# Golang 环境变量

#export GOROOT=/usr/local/go

#export GOPATH=/Users/biaohu/go

#export GOBIN=$GOROOT/bin

#export PATH=$PATH:$GOBIN

# Protoc环境变量

export PROTOBUF=/usr/local/protobuf

export PATH=$PROTOBUF/bin:$PATH

export PATH=$PATH:$GOPATH/bin

       source之后,关闭终端再打开,重新在项目里make,没有之前的问题了,屏蔽glolang环境变量,重新打开终端,make clean,就出现了之前的问题。至此,问题解决。


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

5889 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传