使用protoc-gen-lua带的脚本处理proto文件,生成lua文件。
当proto文件里面message变多时,会导致生成的lua文件中,local 变量超过200个,产生错误
解决方案是改protoc-gen-lua中的脚本,把生成local 变量的地方 ,都用table替代,
或者自己写一个替换lua文件中local变量为table的脚本
有没有哪位解决了这个问题,并且已经有现成脚本的?
使用protoc-gen-lua带的脚本处理proto文件,生成lua文件。
当proto文件里面message变多时,会导致生成的lua文件中,local 变量超过200个,产生错误
解决方案是改protoc-gen-lua中的脚本,把生成local 变量的地方 ,都用table替代,
或者自己写一个替换lua文件中local变量为table的脚本
有没有哪位解决了这个问题,并且已经有现成脚本的?
多谢兄弟,我后来用vi在生成的lua文件中进行替换操作,也差不多完成了。现在贴上来替换步骤:
1 在前面添加PTABLE的定义
2 替换掉local (注意不同文件起始行数可能不同)
:6,251s/local //g
3 删除要在行首添加PTABLE部分的空行 (注意不同文件起始行数可能不同)
:6,2481s/^\n//g
4 行首加PTABLE. (注意不同文件起始行数可能不同)
:6,2316s/^/PTABLE./g
5 替换message_type
:%s/.message_type = /.message_type = PTABLE./g
6 替换protobuf.Message(
%s/protobuf.Message(/protobuf.Message(PTABLE./g
7 替换fields
%s/.fields = {/.fields = {PTABLE./g
%s/, /, PTABLE/g
8 在player中运行并检查错误
这还只是一个问题,当message数量达到某个值的时候,只要请求的message中包含有repeated字段,那恭喜你,也会中奖。
我现在转用云风的pbc了。
用云风大哥的
紧急求助! 添加了ProtocolBuffers的obj c库后,报很多错
当message到达多少会出这个问题?云风的pbc感觉集成很麻烦,有教程吗?
具体的我没去数,我先前解决这个local的问题,就是直接把local全干掉了
后来又出了那个请求message重复字段的问题,所以干脆直接换云风的了。
其实集成也不是太麻烦,还好。我就是按下面这个链接说的方法集成的,就是安卓环境下难整一点,其他还好。
http://www.myexception.cn/operating-system/1393313.html