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
目录下,目前有 cjson
、 luasocket
、 filesysytem(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 支持
上述工作完成后,可以在 iOS 和 mac 下编译运行成功。但 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