【问题标题】:LuaJIT on Windows 10: unknown luaJIT command or jit.*Windows 10 上的 LuaJIT:未知的 luaJIT 命令或 jit.*
【发布时间】:2017-10-25 06:37:51
【问题描述】:

official guide 之后,我一直在尝试在 Windows 10 上安装 LuaJIT,但实际上我已经开始安装它了。例如,如果我执行luajit,我会进入提示符。此外,luajit -v 返回 luajit (2.0.4) 的版本。我还可以使用luajit -e <lua code> 执行代码。但是,每当我尝试使用 luajit -b 保存字节码时,都会收到以下消息:

luajit:未知的 luaJIT 命令或 jit.* 模块未安装

我尝试进行各种安装:使用Cygwinluajit-rocksMinGW,...但是,无论我尝试什么,我总是得到相同的结果,我不知道是什么去做。

您能否指出一些我可能忽略的潜在问题?

我的系统上有 Lua 5.1 和 Luarocks。

【问题讨论】:

  • 请显示您使用的失败的实际命令。 -b 需要输入和输出文件。
  • LuaJIT 显然找不到jit\bcsave.lua。要么它没有安装在正确的位置,要么它不在package.path 中。您是否可以使用LUA_PATH 环境变量覆盖默认的package.path
  • 感谢您的回答。是的,我覆盖了 LUA_PATH(和 LUA_CPATH)环境变量,而 bcsave.lua 不在它们指向的目录中。我想我很久以前就这样做了,当我第一次安装 Lua 和 Luarocks 时,我完全忘记了它。非常感谢,你拯救了我的一天!您可以发布答案以便我接受吗?

标签: windows lua luajit


【解决方案1】:

一些额外的 LuaJIT 功能被实现为单独的 Lua 模块(例如,jit.bcsave 用于保存字节码),LuaJIT 依赖于package.path 来查找这些模块。这些模块的建议安装位置在默认的package.path 中,但如果您通过LUA_PATH 环境变量覆盖它,则必须确保在其中包含该位置。一种简单的方法是将两个连续的分号放入LUA_PATH:将双分号替换为编译时默认值package.path

【讨论】:

  • 我尝试将 LUA_PATH 添加到 jit 模块,但仍然找不到模块。我能做什么?
  • @modiX 运行luajit -e "require('jit.bcsave')"。这应该打印 LuaJIT 查找 bcsave.lua 的所有位置的列表。确保真正的文件位置在那里,如果不是,请修复 LUA_PATH
【解决方案2】:

您需要将模块放置在 juajit.exe 附近的“jit”文件夹中。该文件夹包括一些系统模块(bcsave 也是)。 package.path 不能工作,因为它是硬链接的,我怎么理解。该文件夹与源代码一起分发。 从官方sice下载lua:https://luajit.org/download.html 您可以在存档中看到“jit”文件夹: LuaJIT-2.0.5.zip\LuaJIT-2.0.5\src\jit\

【讨论】:

    猜你喜欢
    • 2018-07-22
    • 2017-07-02
    • 2014-05-16
    • 1970-01-01
    • 2017-11-07
    • 2021-09-17
    • 2019-12-02
    • 2014-11-09
    • 2021-09-09
    相关资源
    最近更新 更多