[✔️]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上,不想编译的自取即可。


目录
相关文章
|
11月前
|
C语言
gcc静态编译/usr/bin/ld: cannot find -lc
gcc静态编译/usr/bin/ld: cannot find -lc
|
Ubuntu 编译器 Linux
[✔️]openal的编译指南
[✔️]openal的编译指南
466 0
|
Linux API Windows
[✔️]openal/openalut 编译使用
[✔️]openal/openalut 编译使用
233 0
|
编解码 Ubuntu Unix
[✔️]VLC编译
[✔️]VLC编译
188 0
|
编译器 Linux 数据库
[✔️]FFMpeg编译32位踩坑指南
[✔️]FFMpeg编译32位踩坑指南
1086 0
|
消息中间件 PHP
PHP编译安装amqp扩展报错解决:/usr/bin/ld: cannot find -lrabbitmq
PHP编译安装amqp扩展报错解决:/usr/bin/ld: cannot find -lrabbitmq
117 0
PHP编译安装amqp扩展报错解决:/usr/bin/ld: cannot find -lrabbitmq
libtoolize: error: Please install GNU M4, or 'export M4=/path/to/gnu/m4'
libtoolize: error: Please install GNU M4, or 'export M4=/path/to/gnu/m4'
144 0
|
C语言
编译OpenJDK8:configure error /usr/lib64/ccache/gcc is a symbolic link to ccache
编译OpenJDK8:configure error /usr/lib64/ccache/gcc is a symbolic link to ccache
125 0