[xLua] 添加jit版的拓展库
2021-04-08 本文已影响0人
_Walker__
环境
- Win10(x86)
- CentOS Linux release 7.7.1908(Android)
- Vagrant+VirtualBox(运行Centos的环境)
Windows
貌似没遇到啥问题
Android
前置依赖
- android-ndk-r10e:自带的编译脚本有写,记得修改export指想的路径
- android-ndk-r15c:64位版本需要
报错处理
- 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
- 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分支最新的版本,进行升级。记录两个问题:
-
图片.pngmake_win64_luajit_gc64.bat
里调用的是msvcbuild_mt.bat
,而LuaJIT自带的没_mt,需要自己复制一份出来,并做些许修改:
-
xLua调用msvcbuild的代码是
call msvcbuild_mt.bat gc64 static
,但msvcbuild里只处理了1个参数,并且新版本JIT默认采用的是dynamic发布编译方式,导致编出来的xLua.dll里不包含lua部分。所以调用代码改为:call msvcbuild_mt.bat static
顺便一提,新版里默认就是开启gc64模式的,所以该参数去掉也没有影响。