1)首先上网搜索了一下,找到以下地址:
https://github.com/google/protobuf
但是这么多版本选哪个呢,顿时懵了。
需要编译windows 的vs版本,找了一下,好像只有2.6.1目录下有vsprojects,所以就它了。
Switch branches/tags ->tags->2.6.1->Clone or download->Download Zip
下载好之后,解压。
2)接下来先不忙着编译,先配置路径和环境变量。
比如我的路径配置是:
在C:\下新建目录“ProtoBuf\protobuf-2.6.1\{bin,lib\{vs9.0,vs10.0,vs12.0},src}”。
然后配置环境变量,新增“PROTOBUF_ROOT”,值为“C:\ProtBuf\protobuf-2.6.1”。
然后修改Path环境变量,Path=%Path%;%PROTOBUF_ROOT%\bin。
3)进入目录\protobuf-2.6.1\vsprojects
因为我机器上有vs2008,vs2010,vs2013,所以我编译了支持三个版本的protobuf库。
4)编译vs2008支持的库
首先使用vs2008打开.sln文件,其中有两个gtest的项目可能加载不成功,不用管,不会影响后续编译,然后[debug][win32] rebuild all,如果编译有失败,请重新逐个工程编译。全部编译完成后,在\protobuf-2.6.1\vsprojects\debug目录中会出现3个.lib文件和一个.exe文件,.exe可以不用管,将三个.lib文件拷贝出来分别重命名成<原文件名>d.lib,这是我们后续用到protobuf时需要链接的库文件。同样切换[release][win32] rebuild all,找到\protobuf-2.6.1\vsprojects\release下的三个.lib,拷贝出来和debug的三个文件一起放在步骤2配置好的“C:\ProtBuf\protobuf-2.6.1\lib\vs9.0”目录。
5)编译vs2010支持的库
用vs2010打开.sln文件,编译过程同vs2008,注意debug改名。然后将生成的6个.lib放在“C:\ProtBuf\protobuf-2.6.1\lib\vs10.0”目录。
6)编译vs2013支持的库
用vs2010打开.sln文件,编译过程同vs2008,注意debug改名。然后将生成的6个.lib放在“C:\ProtBuf\protobuf-2.6.1\lib\vs12.0”目录。
7)拷贝下载的zip中“\protobuf-2.6.1\src”到“C:\ProtBuf\protobuf-2.6.1\src”目录。
8)将上面生成的某一个release版本的“protoc.exe”拷贝到“C:\ProtBuf\protobuf-2.6.1\bin”目录。
经过以上过程,支持vs2008,vs2010,vs2013的32位protobufs sdk就完成了。
接下来需要配置vs来完成对protobuf的使用。