加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 00:20:52 所属栏目:大数据 来源:网络整理
导读:我如何将我的 Lua脚本编译成单个可执行文件,同时还获得超快的性能优势 LuaJIT? 背景: 我的Lua脚本是为我创建的Web应用程序(例如主机http://example.com) 我当前的技术栈是NGINX(web服务器),Lua / LuaJIT(检索动态内容的语言) 我有大约50个.lua文件,组成
我如何将我的 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。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读