[✔️]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 Linux
luajit简介
luajit简介
595 2
|
监控 Java 调度
Spring中的任务调度:探索@Scheduled和@Schedules注解的威力
Spring中的任务调度:探索@Scheduled和@Schedules注解的威力
624 0
|
26天前
|
存储 JavaScript 中间件
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:Casbin集成指南
GoWind Admin(风行)是企业级前后端一体中后台框架,集成Casbin实现灵活权限管理。支持RBAC、ABAC等模型,提供开箱即用的权限控制方案,助力构建安全可靠的中后台系统。
107 1
|
人工智能 Kubernetes 安全
通过阿里云计算巢部署NVIDIA NIM,加速企业大语言模型SaaS化
在人工智能飞速发展的今天,大语言模型(LLM)为各个行业带来了全新的场景和机遇。诸如客户服务数字人,计算机辅助药物研发的生成式虚拟筛选,基于检索增强生成(RAG)的企业多模态PDF数据提取,网络安全流数据过滤、处理和分类优化等工作流,正在无缝集成和运行在定制化的企业AI应用,企业还能够基于专有业务数据和用户反馈数据,不断优化AI应用。
|
11月前
|
网络协议 图形学 Windows
unity获取本机IP地址
在 Unity 中,通过 .NET 框架的 System.Net 命名空间提供的 Dns 和 NetworkInterface 类,可以获取本机的 IPv4 和 IPv6 地址。使用 Dns.GetHostEntry 方法获取主机信息,并根据地址族(AddressFamily.InterNetwork 或 AddressFamily.InterNetworkV6)筛选出相应的 IP 地址。代码示例展示了如何分别获取 IPv4 和 IPv6 地址并输出到控制台。
606 10
|
存储 算法 C语言
【C语言】深入浅出:C语言链表的全面解析
链表是一种重要的基础数据结构,适用于频繁的插入和删除操作。通过本篇详细讲解了单链表、双向链表和循环链表的概念和实现,以及各类常用操作的示例代码。掌握链表的使用对于理解更复杂的数据结构和算法具有重要意义。
3671 6
|
存储 设计模式 算法
一文讲透自适应熔断的原理和实现
一文讲透自适应熔断的原理和实现
|
Java C语言
Android.mk里的LOCAL_SRC_FILES
Android.mk里的LOCAL_SRC_FILES
252 0
|
存储 BI Android开发
全开源仿第八区H5APP封装打包分发系统源码
全开源仿第八区H5APP封装打包分发系统源码
535 4
|
存储 安全 数据安全/隐私保护
如何本地安装AFFiNE并将服务发布至公网实现团队远程访问协作
如何本地安装AFFiNE并将服务发布至公网实现团队远程访问协作

热门文章

最新文章