[✔️]luajit编译

简介: [✔️]luajit编译

Just In Time Compiler,在运行时编译lua语言的编译器。


下载luajit的源代码,目前最新的版本是v2.1


Windows编译dll、lib


Windows的编译比较简单,选择一个vs的build tools:


image.png


切换到源码目录(cmd中切换盘符直接输入盘符即可),执行src/msvcbuild.bat脚本即可


编译Android平台*.a、*.so


luajit官网介绍的如何编译Android非常简洁,仅仅展示了如下的代码:


NDKDIR=/opt/android/ndk
NDKBIN=$NDKDIR/toolchains/llvm/prebuilt/linux-x86_64/bin
NDKCROSS=$NDKBIN/arm-linux-androideabi-
NDKCC=$NDKBIN/armv7a-linux-androideabi16-clang
make HOST_CC="gcc -m32" CROSS=$NDKCROSS \
     STATIC_CC=$NDKCC DYNAMIC_CC="$NDKCC -fPIC" \
     TARGET_LD=$NDKCC TARGET_AR="$NDKBIN/llvm-ar rcus" \
     TARGET_STRIP=$NDKBIN/llvm-strip


Android平台的编译涉及到ndk,它这里也没说明ndk版本,导致我尝试了非常多的版本后,toolchain每个版本都是有差异的,更别说后边的文件,有的根本就对不上,最后选择r14b。


在执行make命令编译时,有许多的选项,这个只能自己去Makefile中从源码中获取其含义了。


踩坑


不建议在Windows上进行Android的编译,即使你使用cygwinmysys2等跨平台编译环境,你也会遇到非常多的问题,而且这些问题都涉及到系统头文件缺失,类型丢失等各种奇葩的问题,这些问题非常棘手,会浪费你非常多的时间。


如果实在找不到linux主机,可以考虑安装一个虚拟机,如果这都感觉麻烦,并且电脑的磁盘空间,性能有限,可以考虑github actions,微软爸爸提供了非常多的系统环境,另外github也提供了一定使用额度的code space,选择一个虚拟环境,在web vscode环境中进行开发,其开发体验和本机非常接近!


我新建了一个GitHub仓库,并编写了一个构建脚本,同时配置了GitActions,并将编译好的.a上传到了release上,不想编译的自取即可。


目录
相关文章
|
7月前
|
Shell Linux C++
Makefile编译实战
Makefile编译实战
97 0
|
7月前
|
Ubuntu
LLVM编译源码
LLVM编译源码
183 0
|
6月前
我为什么更推荐你使用cmake编译grpc程序?
我为什么更推荐你使用cmake编译grpc程序?
133 0
|
7月前
|
Linux Shell C语言
linux下configure,make(makefile),cmake命令详解-makefile和CMakeList
linux下configure,make(makefile),cmake命令详解-makefile和CMakeList
|
7月前
|
存储 PHP Android开发
cocos2dx luajit相关
cocos2dx luajit相关
74 0
CMake教程5:可执行程序调用lib
CMake教程5:可执行程序调用lib
376 0
|
关系型数据库 MySQL C语言
cmake编译问题解决
<p><br></p> <p></p> <p style="margin-top:0px; margin-bottom:0px; padding-top:0px; padding-bottom:0px; font-family:Arial; font-size:14px; line-height:26px"> <strong>2 安装cmake软件包</strong><br> yu
30860 0
|
编译器 C++
CTK-001-编译
CTK编译 参考链接:https://blog.csdn.net/blackwoodcliff/article/details/107624047?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-5&spm=1001.2101.3001.4242
148 0
CTK-001-编译
|
关系型数据库 应用服务中间件 Linux
|
关系型数据库 MySQL Shell