• 周四. 12 月 12th, 2024

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

Lua standalone 打包 package

admin

11 月 28, 2021

过程凌乱,结果见最后。

[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.gzREADME

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

尝试手动拼接,运行失败

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

srglue srlua.exe main.lua test.exe
test.exe
pause

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

test.exe: error loading module 'iuplua' from file 'C:ProgramFileseroBraneStudioinclibs53iuplua53.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。

发表回复