windows lua使用protobuf 环境生成

来源:互联网 发布:polycom网络设置 编辑:程序博客网 时间:2024/06/07 07:13

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
  1. @python "%~dp0protoc-gen-lua"  


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



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

[csharp] view plaincopy
  1. rem 切换到.proto协议所在的目录  
  2. cd  protobuf\luascript  
  3. rem 将当前文件夹中的所有协议文件转换为lua文件  
  4. for %%i in (*.proto) do (    
  5. echo %%i  
  6. "..\..\protoc.exe" --plugin=protoc-gen-lua="..\..\plugin\protoc-gen-lua.bat" --lua_out=. %%i  
  7.   
  8. )  
  9. echo end  
  10. 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


0 0