编译 – 如何将Lua脚本编译成单个可执行文件,同时仍然获得快速的LuaJIT编译器?

前端之家收集整理的这篇文章主要介绍了编译 – 如何将Lua脚本编译成单个可执行文件,同时仍然获得快速的LuaJIT编译器?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我如何将我的 Lua脚本编译成单个可执行文件,同时还获得超快的性能优势 LuaJIT

背景:

>我的Lua脚本是为我创建的Web应用程序(例如主机http://example.com)
>我当前的技术栈是Nginx(web服务器),Lua / LuaJIT(检索动态内容的语言)
>我有大约50个.lua文件,组成我的Web应用程序(从模型/视图/控制器)
> FreeBSD 9操作系统

为了简单起见,在部署中,我想将所有运行我的Web应用程序的.lua脚本编译为单个可执行文件

>这是可能的,如何?

看来Lua官方带有一个叫SRLua的图书馆
>什么是编译我的.lua到一个单一的可执行文件的负面因素(例如性能会更糟糕等)?

解决方法

将所有Lua源代码文件转换为对象文件,并将它们放在静态库中:
for f in *.lua; do
    luajit -b $f `basename $f .lua`.o
done
ar rcus libmyluafiles.a *.o

然后将libmyluafiles.a库链接到您的主程序中使用-Wl, – 整个存档-lmyluafiles -Wl, – 无整个档案-WI,-E。

此行强制链接器包含归档中的所有对象文件,并导出所有符号。

例如,现在可以在应用程序中使用本地foo = require(“foo”)加载名为foo.lua的文件

有关-b选项的详细信息,请参阅Running LuaJIT

猜你在找的Lua相关文章