将 Lua 的默认搜索路径正确设置以找到所需的 Lua 模块

我有一个使用 C++ 代码调用 Lua 文件的 Visual Studio 项目。

我尝试加载一个 Lua 模块,但无法找到。 如果我理解得正确的话,可以通过 LUA_PATH 环境变量设置 package.path。 所以在运行 lua 文件之前,我调用一个脚本来设置路径到 lua 模块的父文件夹中:

set LUA_PATH=%LUA_PATH%;C:\Users\xyz\lua

然后在 lua 文件中尝试使用字符串连接搜索路径,但不起作用:

package.path = package.path .. "./?.lua;"

编辑: print(package.path) 的输出:

;C:\Users\xyz\lua;./?.lua;

但我希望得到

;C:\Users\xyz\lua\?.lua;

编辑: 我忘了删除 LUA_PATH 结尾的分号。 现在它可以在不使用 package.path 的情况下工作。

点赞
用户7582247
用户7582247
将下面翻译成中文并且保留原本的 Markdown 格式:

set LUA_PATH=%LUA_PATH%;C:\Users\xyz\lua


这会在 `C:\Users\xyz\lua` 前面添加 `;`,除非 `LUA_PATH` 已经包含了一些内容。你可能更希望像下面这样:

IF DEFINED LUA_PATH ( set LUA_PATH=%LUA_PATH%; ) set LUA_PATH=%LUA_PATH%C:\Users\xyz\lua


package.path = package.path .. "./?.lua;"


这会在末尾添加一个 `;`,并且添加了 `./`,但你可能想要的是 `\`,所以请尝试这个:

package.path = package.path .. "\?.lua"


2020-03-10 13:18:42