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