Lua:无法加载一个加载另一个模块的模块

我在Lua中无法加载一个需要另一个模块的模块。我尝试阅读官方文档,但仍不清楚。通过使用 package.pathrequire 的组合可以成功加载单个模块。但是对 require 的嵌套调用会失败并产生错误:在行上函数的C级别过多(限制为200)

我有一个如下所示的项目结构:

./exeDir:包含tBig.lua

./utils:包含pkgBig.lua和pkgSmall.lua

pkgSmall.lua

--此模块稍后在pkgBig.lua中加载
local function toto(s)
    print'Toto says:'..s)
end

local function dummy()
    print'Dummy'end

pkgSmall =
{
    toto = toto,
    dummy = dummy,
}

return pkgSmall

pkgBig.lua

local myPkg = require 'pkgSmall'

local function titi(s)
    print'Titi says(followed by dummy):'..s)
    myPkg.dummy()
end

local function fifi()
    print'从fifi调用toto...')
    myPkg.toto('FiFi叫我'end

pkgBig =
{
    titi = titi,
    fifi = fifi,
}

return pkgBig

主要脚本:

tBig.lua

package.path = package.path ..';'..'pathToUtils /pkgBig.lua'
local big = require 'pkgBig'

big.titi('从主调用')
big.fifi(' pkgSmall测试'

调用此脚本会产生“太多的C级别...”错误。

点赞
用户107090
用户107090

我无法重现你的错误。

但是请注意,pathToUtils 需要包含模块名称的模式。

对于我来说,这很正常:

pathToUtils = 'utils/?.lua'
2017-11-12 13:49:55