分享

Android中编译和使用LuaJIT开发应用

 quasiceo 2014-01-05

Android中编译和使用LuaJIT开发应用

使用LuaJIT开发Android应用


一、编译Android平台的LuaJIT

$ git clone http:///git/luajit-2.0.git
$ cd luajit-2.0
$ NDK=/opt/android/ndk
$ NDKABI=8
$ NDKVER=$NDK/toolchains/arm-linux-androideabi-4.6
$ NDKP=$NDKVER/prebuilt/darwin-x86/bin/arm-linux-androideabi-
$ NDKF="--sysroot $NDK/platforms/android-$NDKABI/arch-arm"
$ make HOST_CC="gcc -m32" CROSS=$NDKP TARGET_FLAGS="$NDKF" TARGET_SYS=Linux #在OS X下编译需要指明TARGET_SYS

参考:http:///install.html

二、把生成的libluajit.a库文件与一些头文件拷贝到jni目录下

本例子中使用的是ndk中的hello-jni工程

$ cp src/{libluajit.a,lua.h,lauxlib.h,lua.hpp,luaconf.h,luajit.h,lualib.h} > ../android/jni  # android工程jni目录
$ vim ../android/jni/Android.mk
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := hello-jni
LOCAL_SRC_FILES := hello-jni.c
LOCAL_LDLIBS := $(LOCAL_PATH)/libluajit.a   #加上这句

include $(BUILD_SHARED_LIBRARY)

三、修改hello-jin.c

#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"  // 引入头文件

lua_State* L;         // Lua指针

jstring
Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env,
                                                  jobject thiz )
{
    L = lua_open();   // 打开Lua指针
    luaL_openlibs(L);
    luaL_dostring(L, "return 'Hello from Lua !'");  // 执行Lua语句
    const char * str = lua_tostring(L, -1);         // 获取Lua语句的返回值
    lua_close(L);

    return (*env)->NewStringUTF(env, str);
}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多