luajit64位编译小记

某个cocos项目,需要在Linux环境下跑一个lua代码的编译脚本,出于速度和加密的需求,打算使用luajit,要编译64位代码时,报version `GLIBC_x.xx’ not found (required by xxxx)

搜了一下,应该是cocos提供的luajit预编译文件,是在更高的glibc环境下编译的,很多文章提供的解决方案是升级系统的glibc,而我们的机器当时已经使用了挺长的时间,上面跑着各种其他的项目,不适合这么做,考虑如果可以在机器上重新编译luajit是最保险的

到官网下载luajit最新的版本,传到机器上,make 64位版本需要在lj_arch.h文件,注释掉LJ_TARGET_GC64上下两行的判断条件:

// #ifdef LUAJIT_ENABLE_GC64
#define LJ_TARGET_GC64 1
// #endif

这个简单的操作,需要注意一点,我在这里卡了最长的时间:
host目录的文件就是make出来的,修改lj_arch.h之后需要删除host目录已编译的文件重新make,否则再编译不会重新生成文件,假如先编译了32位版本host/buildvm_arch.h一直引用的会是vm_x86.dasc,编译就要报错

已经过去一段时间,没能找到同样的旧环境机器重现,凭回忆记录一下大致的处理过程

Leave a Reply

Your email address will not be published. Required fields are marked *