cocos2dx-3.x 導(dǎo)入 Lua 擴展庫

1. 文件放到 cocos2d-x/external/lua 目錄下
2. 修改 lua_extensions.c ,包含相關(guān)文件
3. 修改 Android.mk 做 Android 支持


Lua 擴展庫一般由 C/C++ 寫成,其接口有兩種方式生成,一種是手寫 luaL_register(lua5.1) ,另一種是利用 tolua++ 工具。這里討論的是前者,即如何把已經(jīng)寫好的庫導(dǎo)入到 cocos2dx 項目中使用。

0. 準備所需的庫

擴展庫在 cocos2d-x/external/lua 目錄下,目前有 cjsonluasocket 、 filesysytem(lfs) 等常用庫。
要導(dǎo)入的庫是云風的lua內(nèi)存快照snapshot

1. 文件放到 cocos2d-x/external/lua 目錄下

git clone https://github.com/cloudwu/lua-snapshot project_dir/cocos2d-x/external/lua/snapshot

2. 修改 lua_extensions.c ,包含相關(guān)文件

cocos2d-x/cocos/scripting/lua-bindings/manual 找到 lua_extensions.c ,頭部包含所需文件

#include "snapshot/snapshot.c"

luax_exts函數(shù)中加入

static luaL_Reg luax_exts[] = {
    /*
     ...
     */
    {"snapshot", luaopen_snapshot},
    {NULL, NULL}
};

3. 修改 Android.mk 做 Android 支持

上述工作完成后,可以在 iOSmac 下編譯運行成功。但 Android 還要多做點事情。

cocos2d-x/cocos/scripting/lua-bindings/ 目錄下,找到 Android.mk 文件,修改 LOCAL_SRC_FILES 尾部,加入我們需要的c文件

LOCAL_SRC_FILES = 
    # ... #
    ../../../../external/lua/lua/lzio.c\
    ../../../../external/lua/snapshot/snapshot.c

via coder_hsc@csdn

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,667評論 25 709
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,292評論 0 17
  • afinalAfinal是一個android的ioc,orm框架 https://github.com/yangf...
    passiontim閱讀 15,834評論 2 45
  • 1.angularJS:從代碼的結(jié)構(gòu)上,引起了項目搭建方式的不同,使用更加方便。 1)angularJS:指的是m...
    逍遙g閱讀 327評論 0 1
  • 一個人一生會扮演很多角色,小時候是被爸媽照顧的兒女,爺爺奶奶寵愛的孫子孫女,姥姥姥爺慣著的外甥外甥女,慢慢長大了上...
    米線兒_2017閱讀 446評論 4 2

友情鏈接更多精彩內(nèi)容