【问题标题】:Lua: compile a script with all dependenciesLua:编译一个包含所有依赖项的脚本
【发布时间】:2016-03-03 03:57:35
【问题描述】:

有没有一种方法可以编译一个脚本,其中除了标准 Lua 库之外的所有内容都是静态链接的?

我在我的 C 程序中嵌入了一个脚本,功能在模块之间拆分,然后加载到主模块中。我想将主模块编译成 Lua 字节码,将其转换为十六进制代码,以便可以轻松地将其存储在我的程序中。问题是主模块仍然需要其他模块的源代码存在于LUA_PATH 或当前目录中。有没有办法覆盖这种行为?当然,我可以简单地将所有文件(在编译期间自动)合并到一个 lua 源文件中,但是由于我是 Lua 的初学者,我想知道是否有其他解决方案可以解决这个问题,也许可以扩展我的视野.

我正在查看luacluajit,但我无法让他们做我需要的事情。

有什么提示吗?

【问题讨论】:

    标签: c lua compilation luajit


    【解决方案1】:

    srlua 之类的工具可能会有所帮助。您也可以查看this presentation on luawrapthis discussion 的想法。

    【讨论】:

    【解决方案2】:

    序列化 lua_state

    在 C 中,如果您遍历加载的 lua_state 中的函数和值,您可以创建一个 as-if lua 表示。

    这可以序列化为lua 形式,然后编译luac。 您将不得不忽略 C 绑定函数和用户数据。

    您需要遍历元表。

    封装形式

    通过更改加载器,您可以拥有一个资源,该资源按名称包含每个 lua 文件,并将加载请求视为资源中的查找和读取。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-21
      • 2017-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多