本来应该在Linux下搭建golang开发环境,下载protobuf源码,便可在Linux下直接编译,不用像在windows下安装配置起来这么麻烦了。但由于电脑内存有4g,开一个虚拟机电脑卡得十分拖慢工作效率。就只想在windows中搭建好golang环境。折腾了一天多,终于把这个问题搞定了,最终提出了源码安装的方案。
一、下载安装Golang for windows
1.下载golang:http://golang.org/dl/
windows系统下下载所需版本的msi或zip文件。两者区别主要是:zip版本直接解压即可完成安装。msi的需要像正常windows安装程序一样进行安装,最后也会生成跟zip文件解压后一样的目录文件。
2.设置环境变量
假如想利用liteIde编辑工程的话,需要选择好平台并在“View”——>“Edit Environment”中编辑.env文件,我的是win64.env文件,配置好$GOARCH (编译后的目标平台的处理器架构)、$GOOS(目标平台操作系统)、$GOBIN($GOROOT/bin)几个环境变量。
二、下载安装protobuf
三、下载安装Goprotobuf
方案一:
按官方文档http://code.google.com/p/goprotobuf/source/browse/README中,
提到的安装方式为:go get -u code.google.com/p/goprotobuf/{proto,protoc-gen-go}
但是本机一直报错:invalid code.google.com/ import path "code.google.com/p/goprotobuf/{proto,protoc-gen-go}"
Google搜索中诸多人遇到这类问题,但是没有好的解决方案。看大括号括起来,猜测意思应该是将两个资源一起下载下来,便尝试了方案二
方案二:
go get code.google.com/p/goprotobuf/proto
go get code.google.com/p/goprotobuf/protoc-gen-go
此方案果然不报方案一种的错误了,但是新的问题又来了
G:\workspace\GoWorkspace\goextended>go get code.google.com/p/goprotobuf/protopackage code.google.com/p/goprotobuf/proto: Get https://code.google.com/p/goprot
obuf/source/checkout?repo=: dial tcp 173.194.127.34:443: ConnectEx tcp: A connection attempt failed because the connected party did not properly respond after a
period of time, or established connection failed because connected host has failed to respond.
妈蛋,网络问题,难道要不成。不过其实假如你网络不差,一直“go get”最终也是可以拿到资源的,比如我安装log4go和go-sql-driver/mysql包就这样试了十多二十次就get下来了。但是一直试着getproto和protoc-gen-go两个安装包,人品就没那么好了,一直get不下来。
网上一通乱搜,看有没有其他解决方案,仔细一想,其实go get下载东西,也是通过hg的版本同步来从google code代码仓库中pull下来的。所以就干脆利用TortoiseHg直接将代码从项目仓库地址中下载下来,再利用go install源码编译安装,不就大功告成了,便有了方案三。
方案三:
利用hg命令:hg clone https://code.google.com/p/goprotobuf/
将项目文件goprotobuf下载到cmd当前目录。或者可以通过下载https://code.google.com/p/goprotobuf/source/browse/ 中的zip文件,解压。两种方式均可。
clone下来的文件目录中就有proto和protoc-gen-go两个文件夹,两个文件夹里面一看就是一大堆.go文件,而没有proto.a之类的库文件,当然是需要另外编译安装的。
直接运行go install code.google.com/p/goprotobuf/proto,提示错误
can't load package: package code.google.com/p/goprotobuf/proto: cannot find package "code.google.com/p/goprotobuf/proto" in any of:
D:\Go\src\pkg\code.google.com\p\goprotobuf\proto (from $GOROOT)
G:\workspace\GoWorkspace\goextended\src\code.google.com\p\goprotobuf\proto (from $GOPATH)
一看错误就知道是未找到源代码文件,接下来大家应该知道怎么去做了。
最后的关键几步来了:
如此便安装完成了。