IUP for Lua 在 Windows XP 上停止工作。

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

确信这是一条路径问题,但我不知道该如何修复。

原文链接 https://stackoverflow.com/questions/8792575

点赞
stackoverflow用户68204
stackoverflow用户68204

问题是 iuplua 实际上被命名为 iuplua51。通常在 Lua 的 Windows 构建中,默认的 package.cpath 被编辑以包含匹配字符串,其中包括 ?51,以便选择带有 Lua 版本号的 DLLs,以及通常的路径。例如,我的当前 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 显示,可能很快就会将其移植过来。

2012-01-10 09:14:31