日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ProtoBuffer由.proto文件生成.cc/.h

發布時間:2025/7/14 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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彈出的對話框中輸入以下信息

[cpp]?view plaincopy
  • "protoc.exe"?--cpp_out?$(CURRENT_DIRECTORY)?--proto_path?$(CURRENT_DIRECTORY)?$(FULL_CURRENT_PATH)???
  • 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的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。