我从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
很确定这是一个路径问题,但我不知道如何修复它。
答案 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兼容。