萝卜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。

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

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

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 2021-07-22 22:03  萝卜L  阅读(212)  评论(0编辑  收藏  举报