IUP for Lua停止了在Windows XP上的工作

时间:2012-01-09 17:31:16

标签: lua iup

我从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

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

1 个答案:

答案 0 :(得分:1)

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

P:\Data\PhotoArchive>lua
Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
> print(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兼容。