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的批处理代码来源

原文地址:https://www.cnblogs.com/IGNB/p/11644266.html

时间: 2024-11-08 21:30:03

windows批处理protoc生成C++代码的相关文章

PowerShell:在Windows 10中为Wi-Fi网络生成QR代码

您可以使用PowerShell生成QR代码以与您的朋友或同事共享.使用QRCodeGenerator PowerShell模块生成QR码图像的示例,您的同事或来宾可使用该QR码图像连接到Wi-Fi网络(因为您不想将密码指定给每个朋友)). QRCodeGenerator模块可用于为以下对象类型生成带有QR码的PNG文件: vCard联系人卡(名片) 地理数据 Wi-Fi连接设置 您可以手动下载QRCodeGenerator模块(https://www.powershellgallery.com/

windows批处理命令教程

批处理文件是无格式的文本文件,它包含一条或多条命令.它的文件扩展名为 .bat 或 .cmd.在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们 批处理文件是无格式的文本文件,它包含一条或多条命令.它的文件扩展名为 .bat 或 .cmd.在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们.使用批 处理文件(也被称为批处理程序或脚本),可以简化日

windows批处理(.bat)

转自http://www.cnblogs.com/shiney/archive/2011/07/04/2097236.html 本文在运行中有一些小小的问题,我修改了一下,将会在稳重标出 批处理文件是无格式的文本 文件,它包含一条或多条命令.它的文件扩展名为 .bat 或 .cmd.在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们.使用批 处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务.当然我们的这个版

windows批处理(cmd/bat)编程详解

reference: http://blog.csdn.net/bingjie1217/article/details/12947327 http://www.cnblogs.com/doit8791/archive/2012/05/20/2511001.html 开始之前先简单说明下cmd文件和bat文件的区别:在本质上两者没有区别,都是简单的文本编码方式,都可以用记事本创建.编辑和查看.两者所用的命令行代码也是共用的,只是cmd文件中允许使用的命令要比bat文件多.cmd文件只有在windo

Windows 批处理(cmd/bat)常用命令教程

Windows批处理(cmd/bat)常用命令教程 简单详细,建议收藏 前言 批处理文件(batch file)包含一系列 DOS命令,通常用于自动执行重复性任务.用户只需双击批处理文件便可执行任务,而无需重复输入相同指令.编写批处理文件非常简单,但难点在于确保一切按顺序执行.编写严谨的批处理文件可以极大程度地节省时间,在应对重复性工作时尤其有效 在Windows中善用批处理可以简化很多重复工作 什么是批处理? 批处理(Batch),也称为批处理脚本.顾名思义,批处理就是对某对象进行批量的处理.

asp.net中ashx生成验证码代码放在Linux(centos)主机上访问时无法显示问题

最近有个项目加入了验证码功能,就从自己博客以前的代码中找到直接使用,直接访问验证码页面报错如下: 源代码:asp.net中使用一般处理程序生成验证码 Application Exception System.ArgumentException The requested FontFamily could not be found [GDI+ status: FontFamilyNotFound] Description: HTTP 500.Error processing request. De

(八)Unity5.0新特性------IL2CPP Internals: 生成的代码之旅

?? 孙广东  2015.5.25 转载请注明出处吧 这是 IL2CPP Internals系列中的第二个博客文章.在这篇文章,我们将探讨由 il2cpp.exe 生成的 c + + 代码.一路走来,我们将看到托管的类型怎么样表示在本机代码中,看看运行时检查用来支持.NET 虚拟机,请参阅如何循环生成的更多 !     我们会遇到一些非常特定于版本的代码,更高版本的Unity一定会改变.尽管如此,但概念将保持不变.示例项目:我会为此示例使用Unity5.0.1p1 最新版本.在本系列的第一篇,我

windows环境下 生成git公钥和私钥

windows环境下 生成公钥和私钥 上传代码到远程仓库的时候需要秘钥进行验证是否本人上传的.打开Git目录下的Git Bash 输入ssh-keygen,回车 可直接不输入路径,使用默认路径(c/Users/Administrator/.ssh/) 按照提示要输入两次密码,但是如果输入了,每次操作操作git库时都要输入密码,所以选择不输入密码 密码输入结束后,提示已生成秘钥 打开c:/Users/Administrator/.ssh/,在文件中,id_rsa是私钥文件,id_rsa.pub是公

Ngen生成Native代码实战及优缺点分析

先科普一下,.Net是一个用于Windows的托管代码模型,用于高效构建具有视觉上引人注目的用户体验的应用程序.但这个模型生成的代码并非可执行代码,而是由.Net公共语言运行库环境执行的IL代码.所以,每次执行代码时,都会由.Net将IL代码翻译为机器代码.所以,效率上自然会受到一定影响.对此,微软在.Net中附带一个将IL代码转换为Native代码的工具Ngen.exe.它可以创建一份程序集文件至类似于C:\WINDOWS\assembly\NativeImages_v4.0.30319_32