Lua 中實現 protobuf 序列化,還原序列化

來源:互聯網
上載者:User

Protobuf 官方並沒有 Lua版本,然後網易的程式猿開發出了 protoc-gen-lua ,可以讓我們將 Proto 檔案轉成 lua 指令碼在 Lua中使用,下面是詳細的編譯、安裝、使用教程。文中用到的代碼、工具都有百度網盤下載。

網盤下載地址: http://pan.baidu.com/s/1bo8Ufd9  

1、首先我們需要安裝Python2.7,下載地址:

[html]  view plain  co 預設安裝到C盤


把安裝目錄添加到環境變數中,然後開啟命令列 控制台,輸入命令

[html]  view plain  copy   python  
如果提示 命令不存在,則說明環境變數沒有設定正確,如果是如下圖,說明設定成功  

ame.com.cn

2、下載並編譯 Luajit 2.0.4 , 下載後解壓,找到 LuaJIT-2.0.4/src  目錄,其中有一個批次檔 msvcbuild.bat ,這是在 Windows系統的編譯工具。

在開始菜單 - 所有應用中的 Visual Studio 201x 中找到 Visual Studio Tools,開啟 VS201x 開發人員命令提示,切換到 LuaJIT-2.0.4/src 目錄,執行命令

[html]  view plain  copy   msvcbuild.bat  
開始編譯 Luajit 2.0.4


像下圖 出現 Successfully built LuaJIT for Windows/x86  說明編譯成功


本文轉自http://blog.csdn.net/huutu http://www.thisisgame.com.cn

到 LuaJIT-2.0.4\src 目錄中尋找  lua51.dll  lua51.lib  luajit.exe 這三個檔案是否存在,如果上面編譯成功,那這三個檔案是一定有的。


3、下載並編譯 protobuf-2.4.1 

在 protobuf-2.4.1\vsprojects 目錄中開啟 protobuf.sln ,如下圖



在 Visual Studio 中將 下圖中 紅框 中的 test 項目 從項目中移除,要來沒用。


刪除後如下圖


項目一個一個編譯,不要一起編譯。

首先來編譯 libprotobuf 項目,肯定會出錯。提示如下錯誤


原因是Protobuf 中沒有添加對應的標頭檔,在項目中 搜尋開啟 common.h ,添加對應標頭檔,如下圖:


再次編譯,就可以編譯成功。


然後編譯 第二個項目 libprotobuf-lite 。不會出錯。


然後再編譯 第三個項目 libprotoc 。肯定會出錯,如下圖  



雙擊定位錯誤,或者開啟 command_line_interface.cc ,到913行 ,修改為如下圖



再次編譯,即可成功。


最後編譯第四個 項目 protoc 。編譯成功

然後到 protobuf-2.4.1\vsprojects\Debug 目錄中找到產生的 4 個檔案,如下圖紅框中的檔案



這4個檔案會在 編譯 protoc-gen-lua的時候用到。


編譯成功後,到 protobuf-2.4.1\Python 檔案夾中執行命令 [html]  view plain  copy   python setup.py install  

4、下載並 編譯安裝 protoc-gen-lua ,   

下載解壓後,開啟 目錄,如下圖有三個檔案夾


在 plugin 目錄 建立 批次檔 protoc-gen-lua.bat  , 內容如下

[csharp]  view plain  copy   @python "%~dp0protoc-gen-lua"  
然後將 上一步 編譯 protobuf-2.4.1 中產生的 protoc.exe 拷貝到  protoc-gen-lua-master 目錄,如下圖


然後在 protoc-gen-lua-master 目錄下建立批次檔  buildproto.bat ,內容如下

[csharp]  view plain  copy  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.