过程凌乱,结果见最后。
[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_PATH、LUA_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 --version得GNU Make 4.2.1、Built 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。