在cocos2d-x中使用luajit

本文介绍了在cocos2d-x游戏引擎中使用luajit的原因,包括效率提升和代码保护。在Ubuntu 13.04 64位环境下,详细阐述了为cocos2d-x 2.2.1添加luajit支持的步骤,包括修改Linux平台的Makefile和处理Android平台的build_android.sh脚本,以实现luajit的动态链接和编译。
摘要由CSDN通过智能技术生成

今天尝试了一下如何在cocos2d-x中使用luajit,发现cocos2d-x本身对luajit的支持还算不错,但是有一些地方做的还是不够完善,我的平台是linux,我不知道是不是平台的问题,也许mac上做的很完善,所以写下这往篇文章希望对在linux平台上开发cocos2d-x的同学有所帮助。

首先,为什么要用luajit呢?我能想到的原因有两个,一是效率,二是加密。用luajit之后执行效率会有很大的提升,特别是在android下,另外呢luajit之后得到的文件是二进制的bytecode,基本无法反编译,因此对于商业产品来说,提高了被反解的成本

那么luajit与lua到底有什么区别呢?从使用上来说没有区别,因为头文件都是一致的,所以将lua换成luajit来说,有两个步骤,一个是将头文件换成luajit的,另外一个是将动态链接库或者静态链接库也换成luajit的

开发平台:Ubuntu 13.04 64位

cocos2d-x:2.2.1

首先我们来看一下如何让cocos2d-x在linux平台上支持luajit

事实上在linux平台上cocos2d-x对于各模块均采用了动态链接来进行链接,因此我们可以单独处理luajit,而最后在Makefile里引用luajit

事实上对于linux平台来说cocos2d-x并没有支持luajit,大家可以查看${COCOS_ROOT}/scripting/lua/proj.linux

TARGET = liblua.so

INCLUDES += -I.. -I../lua -I../tolua \
        -I../Classes -I../../../CocosDenshion/include -I../../../extensions -I../../../external/chipmunk/include/chipmunk

SOURCES = ../lua/lapi.o \
          ../lua/lauxlib.c \
          ../lua/lbaselib.c \
          ../lua/lcode.c \
          ../lua/ldblib.c \
          ../lua/ldebug.c \
          ../lua/ldo.c \
          ../lua/ldump.c \
          ../lua/lfunc.c \
          ../lua/lgc.c \
          ../lua/linit.c \
          ../lua/liolib.c \
          ../lua/llex.c \
          ../lua/lmathlib.c \
          ../lua/lmem.c \
          ../lua/loadlib.c \
          ../lua/lobject.c
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值