使用ProtocolBuffer的編譯程序protoc可以將.proto生成*.pb.cc的C++代碼文件. 但是在帶有預(yù)編譯頭的工程里, 就經(jīng)常需要手動(dòng)添加類似stdafx.h的包含. 這里使用批處理來(lái)完成這一過程:
BuildProtoCC.bat
@echo off
set protofile=%1%.proto
set output_cc=%1%.pb.cc
"protoc.exe" %protofile% --cpp_out .
@echo 使用%protofile%生成%output_cc%
if exist "pchheader.txt" goto 合并預(yù)編譯頭 else echo pchheader.txt NOT EXIST
:合并預(yù)編譯頭
@echo 嘗試刪除以前的中間文件
del *.pched
@echo 合并編譯頭文件pchheader.txt到生成%output_cc%
copy pchheader.txt+"%output_cc%" "%output_cc%.pched" /y
@echo 等待protoc.exe結(jié)束
@ping -n 2 127.1>nul
echo 清理文件
del "%output_cc%"
ren "%output_cc%.pched" "%output_cc%"
這段批處理這樣使用:
假設(shè)你有一個(gè)叫l(wèi)ogin.proto文件和批處理放在一起
在同一目錄再放置一個(gè)pchheader.txt文件,并在里面寫入#include "stdafx.h”
調(diào)用一下批處理
call BuildProtoCC.bat login
注意login不能帶后綴
將使用protoc.exe生成login.pb.cc和login.pb.h 然后使用批處理合并文件功能自動(dòng)合并預(yù)編譯頭