使用批处理为protocbuffer的输出c++文件添加预编译头

使用批处理为protocbuffer的输出c++文件添加预编译头

使用ProtocolBuffer的编译程序protoc可以将.proto生成*.pb.cc的C++代码文件. 但是在带有预编译头的工程里, 就经常需要手动添加类似stdafx.h的包含. 这里使用批处理来完成这一过程:

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 合并预编译头 else echo pchheader.txt NOT EXIST

:合并预编译头
@echo 尝试删除以前的中间文件
del *.pched
@echo 合并编译头文件pchheader.txt到生成%output_cc%
copy pchheader.txt+"%output_cc%" "%output_cc%.pched" /y
@echo 等待protoc.exe结束
@ping -n 2 127.1>nul
echo 清理文件
del "%output_cc%"
ren "%output_cc%.pched" "%output_cc%"

 

这段批处理这样使用:

假设你有一个叫login.proto文件和批处理放在一起

在同一目录再放置一个pchheader.txt文件,并在里面写入#include "stdafx.h”

调用一下批处理

call BuildProtoCC.bat login

注意login不能带后缀

将使用protoc.exe生成login.pb.cc和login.pb.h 然后使用批处理合并文件功能自动合并预编译头

你可能感兴趣的:(使用批处理为protocbuffer的输出c++文件添加预编译头)