编译目前最新的lua5.3.2到Android平台

来源:互联网 发布:全知之眼纹身手腕 编辑:程序博客网 时间:2024/06/04 18:56

本文介绍编译目前最新的lua5.3.2到Android平台。lua下载地址http://www.lua.org。
编译过程需要ndk,ndk的安装不再复述,lua下载好以后进入src文件夹,可以看到源文件都在开文件夹下面。然后编写我们的Android.mk

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := luaLOCAL_SRC_FILES := lapi.c lcode.c lctype.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c ltm.c lundump.c lvm.c lzio.c lauxlib.c lbaselib.c lbitlib.c lcorolib.c ldblib.c liolib.c lmathlib.c loslib.c lstrlib.c ltablib.c lutf8lib.c loadlib.c linit.c lua.c# Auxiliary lua user defined file# LOCAL_SRC_FILES += luauser.c# LOCAL_CFLAGS := -DLUA_DL_DLOPEN -DLUA_USER_H='"luauser.h"'LOCAL_CFLAGS := -DLUA_DL_DLOPEN -DLUA_USE_C89LOCAL_LDLIBS += -L$(SYSROOT)/usr/lib -llog -ldlLOCAL_CFLAGS += -pie -fPIELOCAL_LDFLAGS += -pie -fPIEinclude $(BUILD_EXECUTABLE)

关于编译的源文件可以参考doc目录下的readme.html

Building Lua on other systems

library:
lapi.c lcode.c lctype.c ldebug.c ldo.c ldump.c lfunc.c lgc.c llex.c lmem.c lobject.c lopcodes.c lparser.c lstate.c lstring.c ltable.c ltm.c lundump.c lvm.c lzio.c lauxlib.c lbaselib.c lbitlib.c lcorolib.c ldblib.c liolib.c lmathlib.c loslib.c lstrlib.c ltablib.c lutf8lib.c loadlib.c linit.c

interpreter:
library, lua.c

compiler:
library, luac.c

编写自己的Application.mk

APP_ABI := armeabi armeabi-v7a x86APP_PLATFORM := android-10

还需要将luaconf.h文件夹中

#if !defined(lua_getlocaledecpoint)#define lua_getlocaledecpoint() (localeconv()->decimal_point[0]) //Missing struct member#endif

修改为

#if !defined(lua_getlocaledecpoint)#define lua_getlocaledecpoint()        ('.')#endif

然后在src目录下输入以下命令进行编译

ndk-build NDK_PROJECT_PATH=./ APP_BUILD_SCRIPT=./Android.mk NDK_APP_APPLICATION_MK=./Application.mk

即可编译成功

1 0