为了尝试将LuaJIT接入虚幻Lua插件之中,需要预编译LuaJIT链接库,在桌面平台问题不大,
主要是移动平台,涉及跨平台编译,因为对跨平台编译具体细节没有系统研究,这里先记录一下跨平台编译LuaJIT的主要过程
由于官方提供的编译脚本仅有MakeFile,所以暂时只能跨平台编译,在Windows Subsystem Linux中操作。
最终命令如下:
#仅针对Android arm64,32位需要安装linux i386 sdk,先略过。
make HOST_CC=clang CROSS=/home/TestUser/android-ndk-r21/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android21- CC=clang
因为新版NDK使用clang作为编译器,而MakeFile里面的一些路径处理还是比较旧,在路径拼接上存在一些问题,需要修改
在MakeFile结束位置修改archive步骤:
原版:
$(LUAJIT_A): $(LJVMCORE_O)
$(E) "AR $@"
$(Q)$(TARGET_AR) $@ $(LJVMCORE_O)
新版
原版路径拼接跟ndk21不太一致,先写死
TARGET_AR="/home/TestUser/android-ndk-r21/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android-ar"
$(LUAJIT_A): $(LJVMCORE_O)
$(E) "AR $@ using $(TARGET_AR)"
$(Q)$(TARGET_AR) -r $@ $(LJVMCORE_O)
后续试试编写xmake脚本编译LuaJIT,MakeFile实在不如Lua脚本方便阅读。