Protobuf一键生成代码bat文件
最近在摆弄Unity的Socket,需要用到Protobuf,一般都会有多个协议文件,所以研究了下bat的批处理,下面给出批处理文件代码:
- @echo off
- ::协议文件路径, 最后不要跟“\”符号
- set SOURCE_FOLDER=.
- ::C#编译器路径
- set CS_COMPILER_PATH=..\Tools\protobuf-net\ProtoGen\protogen.exe
- ::C#文件生成路径, 最后不要跟“\”符号
- set CS_TARGET_PATH=..\Client\Assets\Scripts\Net\Protocol
- ::Java编译器路径
- set JAVA_COMPILER_PATH=..\Tools\protoc\protoc.exe
- ::Java文件生成路径, 最后不要跟“\”符号
- set JAVA_TARGET_PATH=..\Server\GameServer\src
- ::删除之前创建的文件
- del %CS_TARGET_PATH%\*.* /f /s /q
- del %JAVA_TARGET_PATH%\*.* /f /s /q
- ::遍历所有文件
- for /f "delims=" %%i in ('dir /b "%SOURCE_FOLDER%\*.proto"') do (
- ::生成 C# 代码
- echo %CS_COMPILER_PATH% -i:%%i -o:%CS_TARGET_PATH%\%%~ni.cs
- %CS_COMPILER_PATH% -i:%%i -o:%CS_TARGET_PATH%\%%~ni.cs
- ::生成 Java 代码
- echo %JAVA_COMPILER_PATH% --java_out=%JAVA_TARGET_PATH% %%i
- %JAVA_COMPILER_PATH% --java_out=%JAVA_TARGET_PATH% %%i
- )
- echo 协议生成完毕。
- pause
可以将上面的bat文件直接放在协议文件的文件夹中,也可以修改成指定的路径。
还有就是生成的路径的文件夹必须存在哦。
每次创建时都会删除目标文件夹下面的所有文件,注意不要在目标文件夹下存放其它的文件。
我后端使用的是Java,如果是其它语言可查看官方文档进行生成。
顺便记录一下Protobuf的使用方法,首先,我们需要下面3个文件(版本2.6.1):
1.Google Protobuf编译器:http://pan.baidu.com/s/1qWki4cG
2.C#版的Protobuf编译器:http://pan.baidu.com/s/1eQB7qgE
3.Google Protobuf3种语言的支持类库:http://pan.baidu.com/s/1o6l87ay
Unity使用Protobuf:
在Assets文件夹下创建Plugins文件夹,将解压后的Protobuf文件夹中的Full文件夹下的unity文件夹拷贝到Plugins文件夹即可。
注意:这种方式在IOS平台上运行会报错,具体的解决方法可以看下面的文章:
Java使用Protobuf:
我这里直接提供创建好的jar文件,直接引入项目即可:http://pan.baidu.com/s/1hqhbbms
Protobuf一键生成代码bat文件的更多相关文章
- Reg2Bat_By Slore(生成同名bat文件,支持XP WIN7 WIN7X64).vbs
原文http://slore.blogbus.com/logs/52627038.htmlSlore编写的这个reg文件转换为bat文件,是逐句转换的,不是通过批处理生成临时reg文件然后导入的方法, ...
- Mybatis-Plus一键生成代码
Mybatis-Plus一键生成代码 一.闲言碎语 闲来无事看了看了MP的官网看到一键生成的代码更新了! 整个Ui风格都变了,遂决定瞅一眼新的代码生成器 官网地址~~ 二.引入依赖 新的代码生成只有在 ...
- 【vsCode】识别.vue/一键生成.vue模板文件
1.安装插件Vetur 结果 ---> .vue代码识别彩标 2.配置.vue文件模板,以便快速一键生成格式化 2.1新建代码片段 File->Preferences->User S ...
- Fiddler抓包一键生成代码
首先我们的需求场景是 用Fiddler抓到某个接口调用后,用代码来模拟调用,一般我们写代码会有3个步骤: 1设置http请求相关的参数:header,method,url,cookie等 2设置pos ...
- 一键生成JNI头文件方法二
经常使用java的同学一定都接触过JNI(Java Native Interface)吧.JNI为我们提供了java<---->C/C++之间的接口,使得我们可以在java中调用C程序,以 ...
- IntelliJ IDEA使用技巧—使用EasyCode插件一键生成代码04期
在现如今的软件开发过程中,软件开发人员将很多的精力放在重复的编码中.特别是流行的MVC架构模式下,项目各个层次的功能更加独立,这也间接的造成了代码的相似度更高.因此需要寻找一种可以减少软件开发人员重复 ...
- 【Idea插件】kotlin的orm框架一键生成代码框架
@font-face { font-family: octicons-link; src: url("data:font/woff;charset=utf-8;base64,d09GRgAB ...
- delphi 7 生成 调用 bat文件的exe文件
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- BAT文件的调用
分成2个步骤,首先生成一个bat文件,然后调用批处理文件 1.生成.bat文件 入参为文件的内容,filePath为绝对路径,且需要扩展名(这个方法不局限于生成.bat文件,也可以生成其他扩展名文件) ...
随机推荐
- Linux中 干掉原来的PHP方法
干掉原来的PHP方法: 查看php版本命令:#php -v这个命令是删除不干净的#yum remove php因为使用这个命令以后再用#php -v还是会看到有版本信息的..... 必须强制删除#rp ...
- FFMPEG + SDL音频播放分析
目录 [hide] 1 抽象流程: 2 关键实现: 2.1 main()函数 2.2 decode_thread()读取文件信息和音频包 2.3 stream_component_open():设置音 ...
- Oracle 闪回特性(FLASHBACK DATABASE)
--===================================== -- Oracle 闪回特性(FLASHBACK DATABASE) --======================= ...
- TCP/IP详解学习笔记(2)-数据链路层
数据链路层有三个目的: 为IP模块发送和 接收IP数据报. 为ARP模块发送ARP请求和接收ARP应答. 为RARP发送RARP请 求和接收RARP应答 ip大家都听说过.至于ARP和RARP,ARP ...
- Ejabberd源码解析前奏--配置
一.基本配置 配置文件将在你第一次启动ejabberd时加载,从该文件中获得的内容将被解析并存储到内部的ejabberd数据库中,以后的配置将从数据库加载,并且任何配置文件里的命令都会被添加到 ...
- 【转】u盘不显示盘符
转自http://jingyan.baidu.com/article/f3ad7d0fd0793e09c3345b31.html 我的情况: 电脑只有一个c盘,插入u盘,u盘的盘符为d. 弹出u盘,但 ...
- IT版孔乙己(转)
[不要做学究]回忆孔先生IT版 我关于本文评价:看到这篇文章很多人会生出这样的疑问“这明明是在诋毁钻研技术的人嘛?是不是在宣扬技术无用论?”. 初看这篇文章的时候我也是这样的想法,但是逐步才明白这篇文 ...
- IOS GCD
UIButton * btn = [[UIButton alloc]initWithFrame:CGRectMake(100, 100, 100, 100)]; [btn setTitle:@&quo ...
- [King.yue]Ext.Net 正则表达式用法
例: .Regex("^[A-Za-z0-9]+$") //正则表达式 .InvalidText("只能输入英文字符和数字.")); //输入错误提示
- <译>Selenium Python Bindings 1 - Installation
Installation Introduction Selenium Python bindings 提供了一个简单的API来使用Selenium WebDriver编写使用功能/验收测试.通过Sel ...