Luajit 2023移动版本编译 v2.1.ROLLING

文章顶部有编好的 2.1.ROLLING 2023/08/21版本源码 Android 64 和 iOS 64

luajit 目前最新的源码tag版本为 

 v2.1.ROLLING

  •  on Aug 21, 2023

应该是修正了很多bug, 我是出现下面问题才编的.
cocos2dx-lua 游戏 黑屏 并报错:
        [LUA ERROR] bad light userdata pointer

编译环境为 macosx 14.2 M1处理器, ndk-r16b, xcode 15.2
编译脚本在下面, iOS和android写一起了

build.sh 层级目录如下.

#!/bin/bash
export MACOSX_DEPLOYMENT_TARGET=14.2 

#这个是mac编译的脚本
# LuaJIT 的源码路径
LUAJIT=./
cd $LUAJIT
make clean

XCODEPATH=`xcode-select -print-path`
DEVDIR=$XCODEPATH/Platforms
IOSVER=iPhoneOS.sdk

# 库的最总名称
LIBNAME=libluajit2.1.0.a

# iOS 最低兼容版本,最好与需要嵌入 LuaJIT 的 App 的最低兼容设置保持一致.
MINVERSION=12.0

IOSDIR=$DEVDIR/iPhoneOS.platform/Developer

# xctoolchain 可以使用 xcode-select --install 命令安装.
# xctoolchain 和模拟器中, 目前已不包含 gcc 等命令,可以从系统其它位置复制到 $IOSBIN 目录.
# 命令的具体路径,可以执行 xcodebuild -find gcc 获得.
IOSBIN=$XCODEPATH/Toolchains/XcodeDefault.xctoolchain/usr/bin/

BUILD_DIR=$LUAJIT/build
 
rm -rf $BUILD_DIR
mkdir -p $BUILD_DIR
rm *.a 1>/dev/null 2>/dev/null
 
echo =================================================
echo ARM64 Architecture
ISDKF="-arch arm64 -isysroot $IOSDIR/SDKs/$IOSVER -miphoneos-version-min=$MINVERSION"
make -j -C $LUAJIT HOST_CC="gcc " CROSS=$IOSBIN TARGET_FLAGS="$ISDKF" TARGET=arm64 TARGET_SYS=iOS clean
make -j -C $LUAJIT HOST_CC="gcc " CROSS=$IOSBIN TARGET_FLAGS="$ISDKF" TARGET=arm64 TARGET_SYS=iOS 
mv $LUAJIT/src/libluajit.a $BUILD_DIR/libluajit64bit.a
 
libtool -o $BUILD_DIR/$LIBNAME $BUILD_DIR/*.a 2> /dev/null

mkdir -p $BUILD_DIR/Headers
cp $LUAJIT/src/lua.h $BUILD_DIR/Headers
cp $LUAJIT/src/lauxlib.h $BUILD_DIR/Headers
cp $LUAJIT/src/lualib.h $BUILD_DIR/Headers
cp $LUAJIT/src/luajit.h $BUILD_DIR/Headers
cp $LUAJIT/src/lua.hpp $BUILD_DIR/Headers
cp $LUAJIT/src/luaconf.h $BUILD_DIR/Headers
 
mv $BUILD_DIR/$LIBNAME ./lib/ios/$LIBNAME
rm -rf $BUILD_DIR

cd $LUAJIT
cd ..



# #编译 android-arm64-v8a
# make clean

# NDK=/Users/a1/repo/NDK
# NDKABI=21
# NDKTRIPLE=aarch64-linux-android
# NDKVER=$NDK/toolchains/$NDKTRIPLE-4.9
# NDKP=$NDKVER/prebuilt/darwin-x86_64/bin/$NDKTRIPLE-
# NDKF="-isystem $NDK/sysroot/usr/include/$NDKTRIPLE -D__ANDROID_API__=$NDKABI"
# NDK_SYSROOT_BUILD=$NDK/sysroot
# NDK_SYSROOT_LINK=$NDK/platforms/android-$NDKABI/arch-arm64

# make HOST_CC="gcc" CROSS=$NDKP TARGET_FLAGS="$NDKF" TARGET_SYS=Linux TARGET_SHLDFLAGS="--sysroot $NDK_SYSROOT_LINK"  TARGET_LDFLAGS="--sysroot $NDK_SYSROOT_LINK" TARGET_CFLAGS="--sysroot $NDK_SYSROOT_BUILD"

# mv ./src/libluajit.a ./lib/libluajit.a

编译iOS遇见的问题

/Applications/Xcode.app/Contents/Developer/Platforms/Toolchains/XcodeDefault.xctoolchain/usr/bin/gcc command not found

1> 先安装 toolchains:

xcode-select --install

2> 找下缺失本机上对应命令的真实路径:

xcodebuild -find gcc

3> 如果能找到,就把命令复制到缺失命令的位置;如果本机找不到,就从网上搜下安装教程。

我是能找到, 通过 下面这个命令解决问题, 自己可以根据实际修改.

ln -Fs /找到的gcc路径 /Applications/Xcode.app/Contents/Developer/Platforms/Toolchains/XcodeDefault.xctoolchain/usr/bin/gcc

 参考了这篇文章: 【最新最全】为 iOS 和 Android 的真机和模拟器编译 Luajit 库-腾讯云开发者社区-腾讯云

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值