【问题标题】:How to let lua load another lua script?如何让lua加载另一个lua脚本?
【发布时间】:2017-01-13 23:01:17
【问题描述】:

我正在尝试将 Lua 5.2 嵌入到我的 C 程序中。

我想让 Lua 脚本能够require 并加载另一个脚本。怎么做?

假设 Lua 部分有这样的文件结构:

lua_script
  - main.lua
  + utils
    - custom_loader.lua
  + globals
    - scene_globals.lua
    - scene_levels.lua

main.lua 将尝试require 并从custom_loader.lua 导入函数,依此类推...

是否可以在不使用 C 语言编写某种包装器的情况下做到这一点? Lua 脚本可以自动加载它需要的所有内容吗?

(Ps。我现在真的需要沙盒,所以脚本可以做它想做的事。)

【问题讨论】:

  • 我认为require只是一个你可以随意定义的函数。
  • @KerrekSB 所以,我应该将 C 函数推送为 require 并为脚本想要的每个文件执行 luaL_loadfile()
  • 是的,一种可能性是编写自己的搜索器系统来解析require 调用。但是使用内置设施可能会有更简单的解决方案。
  • require('lua_script.utils.custom_loader')

标签: lua


【解决方案1】:

正如 Lua 要求 man page 所描述的,它在路径中搜索文件。

这个路径可以在 C 中定义。 看看这篇文章:"Setting the global LUA_PATH variable from C++/C"

require函数对于加载.lua文件中定义的模块和库非常实用。

【讨论】:

  • @Tito:是的,我认为是的。
猜你喜欢
  • 2017-01-20
  • 2019-01-31
  • 1970-01-01
  • 2017-03-08
  • 1970-01-01
  • 1970-01-01
  • 2012-12-21
  • 2017-07-30
  • 1970-01-01
相关资源
最近更新 更多