您的位置:首页 > 编程语言 > Lua

windows lua使用protobuf 环境生成

2017-05-09 12:08 555 查看
1、首先我们需要安装Python2.7,同时配置好python 的环境变量(path)

2.下载protoc-gen-lua 和 protobuf
 (下载地址:http://download.csdn.net/detail/qwezcl/9837339 )该下载已包含编译好的protoc.exe

3.编译protobuf
,本人采用vs2015编译

下载解压后,在
protobuf-2.4.1\vsprojects 目录中打开 protobuf.sln ,如下图 
本文转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn 




Visual Studio 中将 下图中 红框 中的 test 项目 从项目中移除,要来没用。 
本文转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn 



删除后如下图



项目一个一个编译,不要一起编译。 本文转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn 
首先来编译 libprotobuf 项目,肯定会出错。提示如下错误



原因是Protobuf 中没有添加对应的头文件,在项目中 搜索打开 common.h ,添加对应头文件,如下图:



再次编译,就可以编译成功。

然后编译 第二个项目 libprotobuf-lite 。不会出错。

然后再编译 第三个项目 libprotoc 。肯定会出错,如下图 
本文转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn 



双击定位错误,或者打开 command_line_interface.cc ,到913行 ,修改为如下图



再次编译,即可成功。

最后编译第四个 项目 protoc 。编译成功

本文转自http://blog.csdn.net/huutu http://www.thisisgame.com.cn 
然后到 protobuf-2.4.1\vsprojects\Debug 目录中找到生成的 4 个文件,如下图红框中的文件



这4个文件会在 编译 protoc-gen-lua的时候用到。

笔译过程若是报若是报问题:在C++中使用hash_map时,警告

项目属性->C++->预处理器->预处理器定义:_SILENCE_STDEXT_HASH_DEPRECATION_WARNING

4.、编译安装 protoc-gen-lua

下载解压后,打开
目录,如下图有三个文件夹



在 plugin 目录 创建 批处理文件 protoc-gen-lua.bat , 内容如下

[csharp] view
plaincopy

@python "%~dp0protoc-gen-lua"  

然后将 上一步 编译 protobuf-2.4.1 中生成的 protoc.exe 拷贝到 protoc-gen-lua-master 目录,如下图



然后在 protoc-gen-lua-master 目录下创建批处理文件 buildproto.bat ,内容如下

[csharp] view
plaincopy

rem 切换到.proto协议所在的目录  

cd  protobuf\luascript  

rem 将当前文件夹中的所有协议文件转换为lua文件  

for %%i in (*.proto) do (    

echo %%i  

"..\..\protoc.exe" --plugin=protoc-gen-lua="..\..\plugin\protoc-gen-lua.bat" --lua_out=. %%i  

  

)  

echo end  

pause  

这个批处理的作用是:先进入到一个文件夹,然后将该文件夹中的
proto 文件 生成 lua 文件。 我这里是进入到 protoc-gen-lua-master\protobuf\luascript 。

5.编译python版本的protobuf

在protobuf-2.5\python下运行python setup.py build,然后再执行python setup.py install。

注意:如果protoc.exe没有放,会出现错误找不到google\protobuf\compiler目录

6.测试生成

在 protoc-gen-lua-master\example 目录下有一个测试的 proto 文件 person.proto ,把它拷贝到 luascript 文件夹。



然后 返回执行上面创建的批处理文件 buildproto.bat

生成成功,到 luascript
中查看,看到生成了对应的 lua 文件 person_pb.lua 。



参考文章:http://www.lai18.com/content/2424999.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  lua protobuf