由於實習工作需要進行protobuf2.6進行跨平臺數據傳輸,Windows上配置起來稍微麻煩一些,還有點小坑,工作中用的是Protobuf2.6,我一直用在是Protobuf3.9,開始以爲proto3與proto2不兼容,實際試了一下,proto3可以兼容proto2。
下載鏈接
- Protobuf源碼 :github下載鏈接
- 本人下載的是Protobuf3.9.0
安裝過程
- 下載cmake windows工具(並將bin目錄加入到path)
- Cmake下載鏈接,我用的64位版本,看你的電腦配置
- 打開你的cmd命令行,進入protobuf-3.9.0文件夾下
- 進行編譯,注意:Win64版本編譯出來是64位,不加該字符默認32位;-Dprotobuf_BUILD_TESTS=OFF一定要加上,否則編譯不通過
cd cmake
cmake -G "Visual Studio 15 2017 Win64" -Dprotobuf_BUILD_TESTS=OFF
- 打開生成的工程。分別使用debug/release方式編譯安裝
- 右鍵ALL_BUILD選擇編譯
- 最終生成鏈接庫lib文件如下
配置應用
- 新建工程
- 拷貝protoc.exe到工程目錄
- 工程目錄新建立TestOfProtobuf.proto(用記事本新建即可),內容如下:
syntax="proto3";
package Vehicle;
enum Type{
UNKNOWN=0;
Car=1;
Bus=2;
}
message Info{
int32 id=1;
string name=2;
int32 speed=3;
Type type=4;
float accel=5;
}
- cmd命令行cd到當前工程目錄,執行如下命令:
protoc.exe TestOfProtobuf.proto --cpp_out=./
- 生成如下文件:
- 配置工程中的頭文件目錄與lib依賴:
- 如下,編譯自己的工程即可