如何用proto生成檔案

2021-08-07 01:17:49 字數 1856 閱讀 3961

生成的結果中有庫檔案有:

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 plain

copy

"protoc.exe"

--cpp_out $(current_directory) --proto_path $(current_directory) $(full_current_path)   

protoc.exe的路徑可以自己指定本機的絕對路徑

編譯出的檔案將自動放置到proto檔案所在目錄

d:\dropbox2\dropbox\caffe-windows-ms\windows\thirdparty\bins\protoc.exe --proto_path=d:\dropbox\deeplab_v2-master --cpp_out=d:\dropbox\deeplab_v2-master d:\dropbox\deeplab_v2-master\caffe.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命令。

ruby 生成檔案

1.建立檔案 建立乙個檔案,引數1 檔名,引數2 對檔案的操作,w 讀寫 w 只寫 r 讀寫 r 只寫 f file.new test1.txt w 寫入檔案內容 f.puts test 最後關閉檔案,釋放這個執行緒.f.close 2.指定檔案的路徑 建立路徑path,引數1 檔案的路徑,引數2 ...

Windows MFC dll生成檔案

2009 12 03 21 37 41 分類 c 舉報 字型大小 訂閱 今天接觸了 def檔案,在客戶端工程裡有不少 def檔案,有關 dll匯出的今天就花時間看了看,以前包括現在自己在使用 dll的時候很少用到 dll乙個強大功能,就是跨語言,用 vb做介面呼叫 vc寫的 dll各取所長。以前沒碰...

Scrapy 生成檔案

scrapy應用 一 scrapy框架的應用步驟 1 建立工程 scrapy startproject 工程名稱 2 建立爬蟲 scrapy genspider 檔名稱 spider 二 開發 1 items.py 確定資料採集的屬性 採集項 變數名 scrapy.field title scrap...