mac 下配置protobuf 3.0 golang环境

时间:2024-01-06 18:47:14
protobuf 3.0  与 之前的 protobuf 2.6 的语法是不一样的。需要重新安装一下,本机的环境是 OS X Yosemite  10.10.2
1. 不采用home brew安装,用homebrew安装的话会遇到一个open issue https://github.com/Homebrew/homebrew/issues/30320 的问题,没有仔细研究,索性就直接进行手工安装了;
    不过这里可以记录一下自定义brew的 formula的方法:
    (1) 如果直接使用 brewINSTALLmac 下配置protobuf 3.0 golang环境 protobuf 进行安装的话,目前默认的安装版本还是 2.6.1的,所以需要修改一个brew 的formula,让brew去寻找3.0的版本;方法如下:
              之后会要求输入formula的名字,输入protobuf即可,
              如果之前已经安装过protobuf,会报出protobuf.rb已经存在的错误,直接删除那个protobuf.rb文件就可以;
              还有如果之前安装了别的版本的protobuf,可以用sudo brew remove protobuf删除;
    (2) 上述部署做完之后,会弹出一个vim的编辑页面,直接保存就可以;
    (3) 接着就直接安装 sudo brewINSTALLmac 下配置protobuf 3.0 golang环境 protobuf,brew就会去下载3.0的版本,然后进行安装,进而就报出 https://github.com/Homebrew/homebrew/issues/30320  的问题了。有兴趣的可以研究一下。。。。
2. 直接进入正题,手工安装protobuf,
    (1)下载https://github.com/google/protobuf/archive/v3.0.0-alpha-3.tar.gz ,解压缩,cd 到压缩后的目录下;
    (2)本来按照正常安装linux 软件的步骤安装就行,但是发现没有configure脚本。。。不知道为啥搞了个autogen.sh 脚本,用来生成 configure脚本的,运行一下sudo ./autogen.sh,发现出问题。。。。
    (3)autogen.sh脚本好像要去搞一下gtest,是需要FQ的,挂了vpnFQ之后,gtest运行成功;
    (4)gtest成功后,还会报缺autoreconf包的错误,用sudo brew automake 来解决这个问题; 
    (5)还会报错。。。会报缺少libtool的问题,用sudo brew libtool来解决;
    (6)然后,没问题了。可以直接按顺序运行 ./configure ; make ; makeCHECKmac 下配置protobuf 3.0 golang环境 ; make install ;安装成功后,直接protoc  --version 来查看一下安装的版本是否正确,返回 libprotoc 3.0.0,说明成功安装;
3. 由于要配置 protobuf的golang环境,还需要安装golang的插件,插件的安装方法比较简单;
    (1) go get -u -v github.com/golang/protobuf/proto
              go get -u -v github.com/golang/protobuf/protoc-gen-go
              两个步骤就可以安装好 go的插件,还需要做的一个步骤是:
              sudo cp $GOPATH/bin/protoc-gen-go  /usrLOCALmac 下配置protobuf 3.0 golang环境/bin   将protoc-gen-go移动到系统$PATH中,否则在使用protoc的时候会报错: 找不到  protoc-gen-go 
4. 到目前为止,mac 下protobuf 3.0的golang环境就配置好了。可以使用 protoc --go_out=. *.proto 来生成proto对应的go文件了