ProtoBuf使用指南(C++)
Created: Mar 12, 2019 6:47 PM
Last Edited Time: Mar 22, 2019 1:51 PM
1.安裝部署
-
去官網(gitHub下載,現在用的版本是protobuf-all-3.7.0.zip)
-
去Cmake官網下載Cmake(cmake-3.14.0-rc4-win64-x64)
-
操作Cmake對Proto的源碼進行處理
-
Cmake第二步
-
Cmake第三步:Configure成功后,返回Cmake首頁選擇確定要編譯的相關組件(不知道具體每個組件的作用,圖上打勾的必選,其余可選,不確定就全選)
-
Cmake最后一步,點擊Generate,生成成功則編譯成功。(注:如果ProtoBuf是64位的或者想要在x64平台上編譯,一定要選擇x64,默認為32,不選會出錯。)隨后,在輸出目錄就會有編譯完成的文件。
-
打開Cmake處理完成的文件,目錄下有個.sln文件,用vs2017打開,對項目進行編譯(也可以只編譯libprotobufd/libprotocd/libprotobuf-lited等幾個項目,我這里直接全部編譯-F6),編譯前注意是Debug方式,平台為X64。沒有報錯基本就是編譯成功了。
-
打開編譯OK的文件,進入Debug目錄,目錄下大致文件如下,這樣基本就是成功了。(網上有人編譯后的lib和protoc.exe不一樣大,除了版本問題外還有可能編譯過程有問題,自己把握)
2:C++程序使用指南
-
寫一個.proto文件,命名為msg.proto
-
新建一個C++空的項目,從build的protoBug文件的Debug目錄下拷貝下面的文件到項目名目錄下(如項目叫“Project”,目標目錄是“Project/Project”),並且把msg.proto文件也拷貝到這個目錄下
-
打開CMD,跳到msg.proto所在的文件目錄下,執行下面的這個命令(addressbook.proto→msg.proto)
-
執行完成之后生成兩個文件:msg.pb.h和msg.pb.cc,打開這兩個文件,搜索下msg里面的字段,如果有has_clientid() 這類字樣說明生成成功了。(鑒於我第一次就生成失敗了,這一步檢查還是很有必要的)
-
用VS打開剛剛的項目,右擊添加項目:msg.pb.h和msg.pb.cc。
-
配置環境:
-
右擊項目→屬性→vc++目錄→包含目錄 添加protoBuf的src目錄
-
屬性→C/C++→預處理器定義添加_CRT_SECURE_NO_DEPRECATE和PROTOBUF_USE_DLLS
-
C/C++→常規→SDL 設置SDL為否
-
鏈接器→附加庫目錄 添加項目目錄(前提是各種lib文件已經復制到項目目錄中)
-
鏈接器→輸入→附加依賴項 添加lib文件名
環境配置完畢
-
-
新建Client.cpp,編譯,啟動。
-
將項目文件整體復制出來,修改Client.cpp為Server.cpp編譯,啟動。
-
通訊完成
-