在cocos2d-x中使用luajit(3)
来源:未知 责任编辑:责任编辑 发表时间:2014-01-25 11:31 点击:次
< -o $@
$(OBJ_DIR)/%.o: %.cpp $(CORE_MAKEFILE_LIST)
@mkdir -p $(@D)
$(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) $(VISIBILITY) -c $< -o $@
显然我们加了一个-lluajit以及${LIB_DIR}/libluajit.so,至此就可以在linux下使用了。
修改完成之后,我们可以直接执行./build_android.sh来生成android下用的.a文件
显然我们加了一个-lluajit以及${LIB_DIR}/libluajit.so,至此就可以在linux下使用了。
接下来我们看一下如何让cocos2d-x在android平台上支持luajit
事实上android下对luajit的支持相对较好,有一个shell文件来完成大部分编译的事情,${COCOS_ROOT}/scripting/lua/luajit/build_android.sh
但是这个文件有点小问题,一个是第5行SRCDIR=$DIR/LuaJIT-2.0.1原来是LuaJit,可能这个文件原来是在mac上写的,所以不区分大小写
另外一个是里面的一些命令没有使用arch,大家可以直接看最终版的文件如下
#!/bin/sh
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
host_os=`uname -s | tr "[:upper:]" "[:lower:]"`
arch_os=`uname -m | tr "[:upper:]" "[:lower:]"`
SRCDIR=$DIR/LuaJIT-2.0.1
cd "$SRCDIR"
NDK=$NDK_ROOT
NDKABI=8
NDKVER=$NDK/toolchains/arm-linux-androideabi-4.7
NDKP=$NDKVER/prebuilt/${host_os}-${arch_os}/bin/arm-linux-androideabi-
NDKF="--sysroot $NDK/platforms/android-$NDKABI/arch-arm"
# Android/ARM, armeabi (ARMv5TE soft-float), Android 2.2+ (Froyo)
DESTDIR=$DIR/android/armeabi
rm "$DESTDIR"/*.a
make clean
make HOST_CC="gcc -m32" CROSS=$NDKP TARGET_SYS=Linux TARGET_FLAGS="$NDKF"
if [ -f $SRCDIR/src/libluajit.a ]; then
mv $SRCDIR/src/libluajit.a $DESTDIR/libluajit.a
fi;
# Android/ARM, armeabi-v7a (ARMv7 VFP), Android 4.0+ (ICS)
NDKARCH="-march=armv7-a -mfloat-abi=softfp -Wl,--fix-cortex-a8"
DESTDIR=$DIR/android/armeabi-v7a
rm "$DESTDIR"/*.a
make clean
make HOST_CC="gcc -m32" CROSS=$NDKP TARGET_SYS=Linux TARGET_FLAGS="$NDKF $NDKARCH"
if [ -f $SRCDIR/src/libluajit.a ]; then
mv $SRCDIR/src/libluajit.a $DESTDIR/libluajit.a
fi;
# Android/x86, x86 (i686 SSE3), Android 4.0+ (ICS)
NDKABI=14
DESTDIR=$DIR/android/x86
NDKVER=$NDK/toolchains/x86-4.7
NDKP=$NDKVER/prebuilt/${host_os}-${arch_os}/bin/i686-linux-android-
NDKF="--sysroot $NDK/platforms/android-$NDKABI/arch-x86"
rm "$DESTDIR"/*.a
make clean
make HOST_CC="gcc -m32" CROSS=$NDKP TARGET_SYS=Linux TARGET_FLAGS="$NDKF"
if [ -f $SRCDIR/src/libluajit.a ]; then
mv $SRCDIR/src/libluajit.a $DESTDIR/libluajit.a
fi;
make clean
修改完成之后,我们可以直接执行./build_android.sh来生成android下用的.a文件
注:这一步如果报错,那就应该是你的编译环境的问题,而非是cocos2d-x的问题,我遇到的一个问题就是少了mulitlib库,所以如果大家在这一步报错
不妨仔细看一眼错误在说什么,然后按错误去google一把,来解决问题,因为这里的错误一般来说真不是cocos2d-x的问题
这一步完成之后,事实上android就直接换成luajit的了
因为土鳖没有mac机器,所以也不知道怎么换,这里就献丑了。
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 进入详细评论页>>

![cocos2d_x+lua[2]](/uploads/allimg/131030/110J64609-0-lp.jpg)








