0

我收到以下错误require "iuplua"

lua: budgelua5.lua:3: module 'iuplua' not found:
    no field package.preload['iuplua']
    no file 'z:\Program Files\Lua\5.1\lua\iuplua.lua'
    no file 'z:\Program Files\Lua\5.1\lua\iuplua.luac'
    no file 'z:\Program Files\Lua\5.1\lib\iuplua.lua'
    no file 'iuplua.lua'
    no file '.\iuplua.lua'
    no file 'z:\Program Files\Lua\5.1\lua\iuplua.lua'
    no file 'z:\Program Files\Lua\5.1\lua\iuplua\init.lua'
    no file 'z:\Program Files\Lua\5.1\iuplua.lua'
    no file 'z:\Program Files\Lua\5.1\iuplua\init.lua'
    no file 'z:\Program Files\Lua\5.1\lua\iuplua.luac'
    no file 'z:\Program Files\Lua\5.1\lua\iuplua\iuplua.lua'
    no file 'z:\Program Files\Lua\5.1\clibs\iuplua.dll'
    no file 'iuplua.dll'
    no file '.\libiuplua51.dll'
stack traceback:
    [C]: in function 'require'
    budgelua5.lua:3: in main chunk
    [C]: ?
>Exit code: 1

很确定这是一个路径问题,但我不知道如何解决它。

4

1 回答 1

1

问题是,iuplua它真的是命名iuplua51的。默认package.cpath值通常在 Lua 的 Windows 版本上进行编辑,以包含包含?51在其中的模式,以获取具有 Lua 版本号的 DLL 以及通常的路径。例如,我当前安装的 Lua for Windows 有以下内容:

P:\Data\PhotoArchive>lua
Lua 5.1.4 版权所有 (C) 1994-2008 Lua.org, PUC-Rio
> 打印(package.cpath)
.\?.dll;.\?51.dll;C:\Program Files\Lua\5.1\?.dll;C:\Program Files\Lua\5.1\?51.dl
l;C:\Program Files\Lua\5.1\clibs\?.dll;C:\Program Files\Lua\5.1\clibs\?51.dll;C:
\Program Files\Lua\5.1\loadall.dll;C:\Program Files\Lua\5.1\clibs\loadall.dll
>

请注意,通常不会做同样的事情,package.path因为用 Lua 编写的模块通常对 Lua 核心版本没有那么强的依赖性,或者如果有,它们可以比编写的模块更容易地在运行时解决问题在 C 中可以。

另外,请注意 IUP 尚不能与全新的 Lua 5.2 版本一起使用。该团队一直在工作,从他们最近发布的 CD 和 IM 现在与 5.2 兼容的版本来看,可能会“很快”移植它。

于 2012-01-10T09:14:31.647 回答