如何将lua编译成动态库

今天想把lua编译成动态库,感谢google,总算成功了,简要记录如下:


一、如何将lua编译成动态库,可以参考下面两篇博客:

http://guiquanz.github.io/2012/08/02/lua_improvements/

http://blog.163.com/madahah@126/blog/static/17049922520112692322608


二、如果想用ndk编译lua,有以下注意事项

1、新建jni文件夹,将lua源码拷贝到jni文件夹下。要使用 NDK 自带的 Android.mk,必须叫做这个名字,否则 make 的时候会找不到文件,错误提示可能类似下面:

Android NDK: Could not find application project directory !
Android NDK: Please define the NDK_PROJECT_PATH variable to point to it.

2、对应的Android.mk内容如下(以5.2为例):

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := lua

LOCAL_SRC_FILES := lapi.c \
    lauxlib.c \
    lbaselib.c \
    lcode.c \
    ldblib.c \
    ldebug.c \
    ldo.c \
    ldump.c \
    lfunc.c \
    lgc.c \
    linit.c \
    liolib.c \
    llex.c \
    lmathlib.c \
    lmem.c \
    loadlib.c \
    lobject.c \
    lopcodes.c \
    loslib.c \
    lparser.c \
    lstate.c \
    lstring.c \
    lstrlib.c \
    ltable.c \
    ltablib.c \
    ltm.c \
    lundump.c \
    lvm.c \
    lzio.c \
    lctype.c \
    lbitlib.c \
    lcorolib.c
 
include $(BUILD_SHARED_LIBRARY)

3、编译llex.c时,有如下错误:

D:/SoftWare/lua-5.2.0/jni/llex.c: In function 'trydecpoint':
D:/SoftWare/lua-5.2.0/jni/llex.c:214:18: error: 'struct lconv' has no member named 'decimal_point'

   在stackoverflow论坛上找到一个帖子,按照里面的方法即可解决(cocos2dx就是这样修改的)

   http://stackoverflow.com/questions/12299659/compiling-lua-lib-for-android-success-but-strange-segfaults


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值