cocos2dx-3.x 导入 Lua 扩展库

1. 文件放到 cocos2d-x/external/lua 目录下
2. 修改 lua_extensions.c ,包含相关文件
3. 修改 Android.mk 做 Android 支持


Lua 扩展库一般由 C/C++ 写成,其接口有两种方式生成,一种是手写 luaL_register(lua5.1) ,另一种是利用 tolua++ 工具。这里讨论的是前者,即如何把已经写好的库导入到 cocos2dx 项目中使用。

0. 准备所需的库

扩展库在 cocos2d-x/external/lua 目录下,目前有 cjsonluasocketfilesysytem(lfs) 等常用库。
要导入的库是云风的lua内存快照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 ,包含相关文件

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

#include "snapshot/snapshot.c"

luax_exts函数中加入

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,678评论 25 708
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,571评论 0 17
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,585评论 2 45
  • 1.angularJS:从代码的结构上,引起了项目搭建方式的不同,使用更加方便。 1)angularJS:指的是m...
    逍遥g阅读 300评论 0 1
  • 一个人一生会扮演很多角色,小时候是被爸妈照顾的儿女,爷爷奶奶宠爱的孙子孙女,姥姥姥爷惯着的外甥外甥女,慢慢长大了上...
    米线儿_2017阅读 386评论 4 2