笔者使用cocos2dx-lua开发游戏的过程中,由于服务端采用skynet框架进行通讯,故客户端需要配置sproto相关环境。方法如下
1.在github上下载skynet源码,拷贝lualib-src/sproto文件夹和3rd/lpeg文件夹,并将其放置在工作所在目录的frameworks\cocos2d-x\external\lua文件夹内
2.从VS解决方案中查找文件lua_extensions.c,并在其首部包含以下文件
//lpeg
#include"lpeg/lptypes.h"
#include"lpeg/lpcap.h"
#include"lpeg/lpcode.h"
#include"lpeg/lpprint.h"
#include"lpeg/lptree.h"
#include"lpeg/lpvm.h"
//sproto
#include"sproto/sproto.h"
externintluaopen_sproto_core(lua_State*L);
externintluaopen_lpeg(lua_State*L);
在luax_exts[]新增这两项
staticluaL_Regluax_exts[]={
{"lpeg",luaopen_lpeg},
{"sproto.core",luaopen_sproto_core},
3.在VS工程libluacocos2dx内添加sproto和lpeg文件夹,并将对应文件导入,重新生成工程即可
4.在frameworks\cocos2d-x\cocos\scripting\lua-bindings\proj.android\Android.mk中添加以下内容
#lpeg
LOCAL_SRC_FILES += ../../../../external/lua/lpeg/lpcap.c \
../../../../external/lua/lpeg/lpcode.c \
../../../../external/lua/lpeg/lpprint.c \
../../../../external/lua/lpeg/lptree.c \
../../../../external/lua/lpeg/lpvm.c
#sproto
LOCAL_SRC_FILES += ../../../../external/lua/sproto/lsproto.c \
../../../../external/lua/sproto/sproto.c
以保证打包的正确性
参考连接:http://blog.csdn.net/hqq39/article/details/50708530