[xLua] 添加jit版的拓展库

环境

  • Win10(x86)
  • CentOS Linux release 7.7.1908(Android)
  • Vagrant+VirtualBox(运行Centos的环境)

Windows

貌似没遇到啥问题

Android

前置依赖

  • android-ndk-r10e:自带的编译脚本有写,记得修改export指想的路径
  • android-ndk-r15c:64位版本需要

报错处理

  1. 64位系统,编译32位的库,缺少支持
/usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file or directory

64位linux 编译c提示gnu/stubs-32.h:No such file or directory的解决方法
https://blog.csdn.net/xuebing1995/article/details/100730594
解决:

yum -y install glibc-devel.i686
yum install libstdc++-devel.i686
  1. CMake版本过低
CMake Error at /vagrant/ndk-15/build/cmake/android.toolchain.cmake:40 (cmake_minimum_required):
  CMake 3.6.0 or higher is required.  You are running version 2.8.12.2

解决:
https://cmake.org/download/ 下载高版本cmake
我这里用的是:
https://github.com/Kitware/CMake/releases/download/v3.20.0/cmake-3.20.0-linux-x86_64.sh

shell> cd /usr
shell> sh /vagrant/cmake-3.20.0-linux-x86_64.sh

解压过程,两次选则分别是:y,n

两个jit脚本都跑完发现,只用make_android_luajit_arm64.sh就能把arm64-v8a、armeabi-v7a、x86三个库都生成 Orz...


[2021-04-08更新] 升级LuaJit到 2.1-20f556e

  同事说Android30上64位Lua会有PB协议导致的闪退问题,LuaJIT在去年修复了这个Bug。我下载了v2.1分支最新的版本,进行升级。记录两个问题:

  1. make_win64_luajit_gc64.bat里调用的是msvcbuild_mt.bat,而LuaJIT自带的没_mt,需要自己复制一份出来,并做些许修改:

    图片.png

  2. xLua调用msvcbuild的代码是call msvcbuild_mt.bat gc64 static,但msvcbuild里只处理了1个参数,并且新版本JIT默认采用的是dynamic发布编译方式,导致编出来的xLua.dll里不包含lua部分。所以调用代码改为:call msvcbuild_mt.bat static
    顺便一提,新版里默认就是开启gc64模式的,所以该参数去掉也没有影响。

你可能感兴趣的:([xLua] 添加jit版的拓展库)