萝卜L

导航

统计

Lua standalone 打包 package

过程凌乱,结果见最后。

[ANN] updated srlua, a tool for building self-running Lua programs (lua-users.org)

LuaRock(仅有作者页面,无模块Modules)
Luiz Henrique de Figueiredo: Libraries and tools for Lua (puc-rio.br)
详见README。

srlua编译生成exe可执行文件_风轻淡淡的博客-CSDN博客

glue srlua.exe srluademo.lua srluademo.exe

lua打包exe【转】 - 极客分享 (geek-share.com)

glue srlua.exe test.lua test.exe

其他参考:Creating stand-alone executeables from .lua files : lua (reddit.com)

测试:

 建议在脚本入口处设置package.path/cpath

(以上下载的编译好版本)默认用的Lua5.1(编译srlua时确定的),会自动使用系统环境变量LUA_PATHLUA_CPATH

需要自行编译了..

阅读:Luiz Henrique de Figueiredo: Installing my Lua Libraries (puc-rio.br)\Building the library
srlua-102.tar.gz\README

设置变量、编译参数。
参见cygwin64 linux 命令

尝试手动拼接,运行失败

 构造测试。文本文件如自定义命名为make.cmd。

1
2
3
srglue srlua.exe main.lua test.exe
test.exe
pause

打包后出现问题(打包前正常)

1
2
test.exe: error loading module 'iuplua' from file 'C:\ProgramFiles\ZeroBraneStudio\bin\clibs53\iuplua53.dll':
        %1 不是有效的 Win32 应用程序。

可能是他们都得使用相同的编译器/编译设置?!否则二进制不兼容!
以上的iuplua.dll对应iup-XXX_Lua53_Win32_dllXXX_lib

查看编译出来的exe,发现是64位,>make --versionGNU Make 4.2.1Built for x86_64-w64-mingw32。而require的dll是32位。
参见:怎样判断一个exe可执行程序是32位的还是64位的-百度经验 (baidu.com)

MinGW-w64 - for 32 and 64 bit Windows - Browse Files at SourceForge.net更新32 bit的make。

 

在其他零零散散的记录中完成了。回头有需求再整理文档。先分享lua package-srglue srlua-windows:
https://pan.baidu.com/s/1HfggGjZBx5JfnSbOYoAYSg,9xfw
水平有限,折腾出来不容易,欢迎留言..

打包后是生成一个exe应用程序,且至少依赖dll,不确定是否依赖require的其他remoteLib.lua。

posted on   萝卜L  阅读(233)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示