在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机器,所以也不知道怎么换,这里就献丑了。
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>