【问题标题】:Lua trouble: attempt to call global 'unpack' (a nil value)Lua 麻烦:尝试调用全局“解包”(一个 nil 值)
【发布时间】:2014-11-05 19:27:44
【问题描述】:

我对 Lua 比较陌生,正在尝试将它嵌入到库中。我可以从命令行很好地执行脚本,但是在嵌入时调用脚本中的函数时遇到以下错误

PANIC: unprotected error in call to Lua API ([string "-- #! /usr/local/bin/lua..."]:72: attempt to call global 'unpack' (a nil value))

unpack去哪儿了?

【问题讨论】:

  • 检查你使用的 Lua 版本。在 Lua 5.1 中,unpack 是一个全局变量,但在 5.2 中它被移到了 table.unpack。您可能在嵌入 5.2 时在命令行中使用 Lua 5.1。
  • 嗯将它移到 table.unpack 工作。我将 5.2.3 用于嵌入式和命令行解释器。命令行解释器似乎并不关心我留下了unpack 不合格。

标签: lua embedding unpack


【解决方案1】:

您可能将 Lua 作为源代码嵌入,而不是作为预构建库嵌入。在这种情况下,您可能没有启用向后兼容性。

默认情况下,命令行解释器是向后兼容构建的,因此您会看到差异。

【讨论】:

  • 如何启用向后兼容性?
  • @jarnosz,定义 LUA_COMPAT_UNPACK 或 LUA_COMPAT_ALL。
猜你喜欢
  • 2018-07-11
  • 2014-05-06
  • 1970-01-01
  • 2019-03-01
  • 2013-03-28
  • 2013-12-15
  • 1970-01-01
  • 2019-06-13
  • 2017-04-03
相关资源
最近更新 更多