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


目录
相关文章
|
监控 Java 调度
Spring中的任务调度:探索@Scheduled和@Schedules注解的威力
Spring中的任务调度:探索@Scheduled和@Schedules注解的威力
753 0
|
6月前
|
存储 JavaScript 中间件
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:Casbin集成指南
GoWind Admin(风行)是企业级前后端一体中后台框架,集成Casbin实现灵活权限管理。支持RBAC、ABAC等模型,提供开箱即用的权限控制方案,助力构建安全可靠的中后台系统。
490 1
|
存储 文件存储 Android开发
仿第八区APP分发下载打包封装系统源码
该系统为仿第八区APP分发下载打包封装系统源码,支持安卓、iOS及EXE程序分发,自动判断并稳定安装。智能提取应用信息,自动生成PLIST文件和图标,提供合理的点数扣除机制。支持企业签名在线提交、专属下载页面生成、云端存储(阿里云、七牛云),并优化签名流程,支持中文包及合并分发,确保高效稳定的下载体验。 [点击查看源码](https://download.csdn.net/download/huayula/90463452)
851 22
|
Java 编译器 Go
探索Go语言的性能优化技巧
在本文中,我们将深入探讨Go语言的底层机制,以及如何通过代码层面的优化来提升程序性能。我们将讨论内存管理、并发控制以及编译器优化等关键领域,为你提供一系列实用的技巧和最佳实践。
|
存储 设计模式 算法
一文讲透自适应熔断的原理和实现
一文讲透自适应熔断的原理和实现
|
存储 BI Android开发
全开源仿第八区H5APP封装打包分发系统源码
全开源仿第八区H5APP封装打包分发系统源码
726 4
|
存储 安全 数据安全/隐私保护
如何本地安装AFFiNE并将服务发布至公网实现团队远程访问协作
如何本地安装AFFiNE并将服务发布至公网实现团队远程访问协作
|
Java C语言
Android.mk里的LOCAL_SRC_FILES
Android.mk里的LOCAL_SRC_FILES
328 0
|
SQL Prometheus 监控
实时计算 Flink版产品使用问题之作业频繁重启该如何处理
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
Android开发
Android获取当前连接的wifi名称
Android获取当前连接的wifi名称
1226 6