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

时间:2017-11-12 13:15:27

标签: lua

我无法在Lua中加载需要另一个模块的模块。我试过阅读官方文档,但我仍然不清楚。通过结合使用 package.path require ,加载单个模块可以正常工作。但嵌套调用需要失败并产生错误:行中的C级太多(限制为200)

我的项目结构如下:

./exeDir:包含tBig.lua

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

pkgSmall.lua

-- this module is loaded later in 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('Calling toto from fifi...')
    myPkg.toto('FiFi called me')
end

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

return pkgBig

主要剧本:

tBig.lua

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

big.titi(' called from main')
big.fifi(' pkgSmall test')

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

1 个答案:

答案 0 :(得分:1)

我无法重现您的错误。

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

这对我来说很好用:

pathToUtils = 'utils/?.lua'