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的使用。