战魂小筑

讨论群:309800774 知乎关注:http://zhihu.com/people/sunicdavy 开源项目:https://github.com/davyxu

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  257 随笔 :: 0 文章 :: 506 评论 :: 0 Trackbacks

使用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 然后使用批处理合并文件功能自动合并预编译头

posted on 2011-11-02 17:32 战魂小筑 阅读(2192) 评论(1)  编辑 收藏 引用 所属分类: 脚本技术C++/ 编程语言工具使用及设计

评论

# re: 使用批处理为protocbuffer的输出c++文件添加预编译头 2011-11-02 19:05 xoyojank
用这玩意做啥用?  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理