gpt4 book ai didi

使用 require 和 dofile 将 lua5.2 文件编译成一个文件

转载 作者:太空宇宙 更新时间:2023-11-04 04:18:42 31 4
gpt4 key购买 nike

我可以将所有文件编译成一个文件,然后从 C 执行吗?在我的 lua 文件中,我使用了 require 和 dofile 函数。当我尝试使用 luac 进行编译然后我想执行编译后的文件时,它将无法找到我在编译后的文件中构建的模块。我认为通过 require 和 dofile 函数 luac 编译器过程包括 lua 文件,例如 javascript 编译器。简而言之,Javascript 编译器将导入文件添加到一个文件中。

当您发布应用程序并将 lua 脚本放在一个文件中时,这是一种好习惯吗?因为我有几个包含 lua 脚本的目录,所以当我发布时,我必须拥有所有 lua 文件和可读形式的二进制文件。

最佳答案

luac 不是打包工具,只是一个编译器。它会将你提供给它的所有内容——只要它是有效的 Lua——编译成 Lua 字节码

如果您需要将所有内容都放在一个文件中并希望使用 require 包含您的模块,您必须稍微修改您的源文件,以便 require 知道在哪里在内存中找到这些模块。

简单地把它放在所有 Lua 模块文件的末尾:

package.loaded["<yourmodnamehere>"] = yourmodreturnvalue

然后在 Lua 初始化之后简单地 requireluaL_dofile 组合 Lua。

无论您使用 dofile 做什么,将代码重写为函数可能更容易。

关于使用 require 和 dofile 将 lua5.2 文件编译成一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48944255/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com