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

set lua default search path correctly to find required lua module

我有一个 visual studio 项目,其中 C++ 代码调用 lua 个文件。

我尝试加载 lua 模块,但找不到。 如果理解正确的话,package.path可以设置i.a。通过 LUA_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 行的情况下工作。

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"