ProtoBuffer由.proto文件生成.cc/.h
ProtoBuffer由.proto文件生成.cc/.h
?
一:編譯源碼
下載地址:http://code.google.com/p/protobuf/downloads/list?
下載后,根據編譯說明進行編譯。
windows 平臺,直接打開msvc中的工程文件,直接編譯。
unix/Linux平臺,先進行configure,在make。
[下載和編譯過程不詳述,請看這里]
生成的結果中有庫文件有:
libprotobuf.lib
libprotobuf-lite.lib
libprotoc.lib
可執行文件有:
protoc.exe
頭文件:
根據提供的extract_includes.bat文件,提取公共頭文件。
二:編寫proto文件
根據需要,編寫proto文件。
補充一條:如果想使用libprotobuf-lite.lib(會使二進制體積小一些),則在.proto文件的頭部聲明:
option optimize_for = LITE_RUNTIME;
三:生成頭文件
編寫完proto文件后,接下來,用protoc.exe生成.h和.cc文件。
命令如下:
protoc.exe -proto_path=SRC --cpp_out=DST SRC/checklist.proto?
其中--proto_path指出proto文件所在的目錄,--cpp_out則是生成的代碼文件要放的目錄,最后的一個參數指出proto文件的路徑。如上述命令中可以看出,將SRC目錄下的addressbook.proto編譯后放在DST目錄下,應該會生成checklist.pb.h和checklist.pb.cc文件
?
四:Notepad++掛接ProtoBuffer代碼生成器protoc
手動用proto文件生成.h/.cc文件比較麻煩,可以借用notepad++的插件一勞永逸
在插件菜單NppExec(如果沒有就先裝這個插件)->Execute彈出的對話框中輸入以下信息
protoc.exe的路徑可以自己指定本機的絕對路徑
編譯出的文件將自動放置到proto文件所在目錄
五:與工程進行集成
需要把生成的.h和.cc導入到工程中去,在需要用到數據解析的文件中,引用該.h文件。
需要把libprotobuf.lib(或libprotobuf-lite.lib)添加到項目的依賴庫中。
?
補充一條:一般用vs編的時候,默認需要在.cpp/.cc文件頭部加預編譯頭文件#include "stdafx.h",但這又會修改.cc文件(原則上生成的.h/.cc文件不要修改),所以解決的方法就是:在VS的solution explorer中右鍵checklist.pb.cc-->屬性-->預編譯頭(precompiled header)->預編譯頭(precompiled header)-->選擇“不使用預編譯頭”("not using precompiled headers")
六:推薦做法:
建立文件夾pbbuff,在其中創建3個子文件夾:bin,lib,include,其中:
bin 存放proto.exe文件?
lib 存放libprotobuf.lib 文件
include 存放公共頭文件
創建環境變量PBROOT,指向pbbuff文件。把%PBROOT%/bin添加到系統的環境變量PATH中,以便能識別protoc命令。
?
?
【參考:http://yleesun.blog.163.com/blog/static/294134022011112102117958/】
轉載于:https://www.cnblogs.com/zhehan54/p/6515672.html
總結
以上是生活随笔為你收集整理的ProtoBuffer由.proto文件生成.cc/.h的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mysql 查看、创建、更改 数据库和表
- 下一篇: 201521123091 《Java程序