windows批处理protoc生成C++代码
1 首先需要生成protoc的可执行文件,具体可以参考 https://www.cnblogs.com/cnxkey/articles/10152646.html
2 将单个protoc文件生成.h和.cc文件
protoc -I=Proto文件路径 –cpp_out=指定输出.h和.cc的目录 Proto文件
3 windows批处理。其实就是在2的基础上增加一个查找proto文件的循环
可以先看看这个 https://www.bbsmax.com/A/n2d9X86Q5D/
我们改一下就可以生成C++代码了
@echo off
::协议文件路径, 最后不要跟“\”符号,可以使用相对路径
set SOURCE_FOLDER=你的proto文件所在目录 ::C++编译器路径
set CPP_COMPILER_PATH=你的protoc.exe的具体路径,比如c:\protoc.exe
::C++文件生成路径, 最后不要跟“\”符号
set CPP_TARGET_PATH=最后cc和h文件存放的目录 ::删除之前创建的文件
del %CPP_TARGET_PATH%\*.* /f /s /q ::遍历所有文件
for /f "delims=" %%i in ('dir /b "%SOURCE_FOLDER%\*.proto"') do (
::生成 C++ 代码
echo %CS_COMPILER_PATH% -I=%SOURCE_FOLDER% --cpp_out=%CPP_TARGET_PATH% %%i
%CS_COMPILER_PATH% -I=%SOURCE_FOLDER% --cpp_out=%CPP_TARGET_PATH% %%i
)
echo Generate Code Finished
pause
总结:
1 装protoc可能会有些困难,我是采用cmake+vs的方式装的,先cmake生成vs的工程,然后vs编译。
2 网上直接搜到的代码未必可以直接用,比如上面参考的博客里面的批处理命令,可能是因为protoc版本太老了,所以参数都不一样了,不过windows批处理的思想是一样的,改一改,试一试,或许就能满足自己的要求了。
3 windows批处理使用之前记得确认好实际功能,避免因为不知道命令的作用而误删除文件,那样就得不偿失了。
参考:
https://blog.csdn.net/CAir2/article/details/78201572 --- 2的命令来源
https://www.bbsmax.com/A/n2d9X86Q5D/ --- 3的批处理代码来源
windows批处理protoc生成C++代码的更多相关文章
- cmd下windows批处理,获取当前系统时间,生成日志文件名
示例: rdGetRTData_log%date:~0,4%%date:~5,2%%date:~8,2%.txt 生成格式: rdGetRTData_log20151103.txt 编写Windows ...
- Windows 窗体设计器生成的代码
namespace 窗体的浮动及隐藏{ partial class Form1 { /// <summary> /// 必需的设计器变量. ...
- windows批处理运行java程序
明确需求 今天你编了一个java swing版照片查看器,想让计算机上的所有照片默认打开方式都改成你的照片查看器. 使用工具软件 很多工具软件都是不把jre打包到exe中的,这就是说打包之后的exe只 ...
- windows批处理(cmd/bat)编程详解
reference: http://blog.csdn.net/bingjie1217/article/details/12947327 http://www.cnblogs.com/doit8791 ...
- WINDOWS批处理命令使用大全
来源:http://www.942dn.com就是爱电脑网 WINDOWS批处理命令使用大全 批处理,也称为批处理脚本,英文译为BATCH,批处理文件后缀BAT就取的前三个字母.它的构成没有固定格式, ...
- windows批处理(.bat)
转自http://www.cnblogs.com/shiney/archive/2011/07/04/2097236.html 本文在运行中有一些小小的问题,我修改了一下,将会在稳重标出 批处理文件是 ...
- [转帖]Windows批处理(cmd/bat)常用命令小结
Windows批处理(cmd/bat)常用命令小结 非常值得学习的文档 先放这里 有时间做实验, 转载自:“趣IT”微信公共号 前言 批处理文件(batch file)包含一系列 DOS命令,通常用于 ...
- Windows 批处理大全(附各种实例)
Windows 批处理大全(附各种实例) 2009年07月19日 21:31:00 阅读数:2552 批处理文件是无格式的文本文件,它包含一条或多条命令.它的文件扩展名为 .bat 或 .cmd.在命 ...
- Windows 批处理(cmd/bat)常用命令教程
Windows批处理(cmd/bat)常用命令教程 简单详细,建议收藏 常见问题: 1.如果你自己编写的.bat文件,双击打开,出现闪退 2.批处理.bat 文件中输出中文乱码 解决方法在文章末尾! ...
随机推荐
- MySQL----DML(增删改表中数据)
##DML:增删改表中的数据 1.添加数据 *语法: * insert into 表名(列名1,列名2,...列名n) values (值1,值2,...值n); *注意: 1.列名和值要一一对应. ...
- 题解 P2755 【洗牌问题】
这是本人的第一篇题解 请多多宽恕 这一道题其实不要用数组 我们来观察一下n=3时的情况: 原: 1 2 3 4 5 6 4 1 5 2 6 3 2 4 6 1 3 5 1 2 3 4 5 6 我们去观 ...
- Hive的数据模型及各模块的应用场景
Hive的数据模型 Hive数据模型.png 数据模型组成及应用场景 Hive的数据模型主要有:database.table.partition.bucket四部分: 数据模型之database ...
- TensorFlow系列专题(九):常用RNN网络结构及依赖优化问题
欢迎大家关注我们的网站和系列教程:http://panchuang.net/ ,学习更多的机器学习.深度学习的知识! 目录: 常用的循环神经网络结构 多层循环神经网络 双向循环神经网络 递归神经网络 ...
- 报错代码:svn-http status413'requset entity too large
报错代码:svn-http status413'requset entity too large 发现报错,判断问题.解决问题.记录问题. SVN服务器端排查过没有问题,其他客户端都能正常更新.只有一 ...
- python之进程,线程
什么是进程(process)? 程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程.程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本 ...
- 【动态规划】最佳加法表达式(百练oj4152)
总时间限制: 1000ms 内存限制: 65536kB 描述 给定n个1到9的数字,要求在数字之间摆放m个加号(加号两边必须有数字),使得所得到的加法表达式的值最小,并输出该值.例如,在1234中摆放 ...
- jQuery数组去重复
例如: var yearArray = new Array("三二一", "三二一", "学历", "学历", &quo ...
- 5.Metasploit攻击载荷深入理解
Metasploit 进阶第三讲 深入理解攻击载荷 01 Nesus介绍.安装及使用 Nessus介绍 Nessus是一款著名的漏洞扫描及分析工具,提供完整的漏洞扫描服务,并随时更新漏洞数据库. ...
- Docker基础修炼1--Docker简介及快速入门体验
本文作为Docker基础系列第一篇文章,将详细阐述和分析三个问题:Docker是什么?为什么要用Docker?如何快速掌握Docker技术? 本系列文章中Docker的用法演示是基于CentOS7进行 ...