我从require "iuplua"
得到以下错误
lua: budgelua5.lua:3: module 'iuplua' not found:
no field package.preload['iuplua']
no file 'z:Program FilesLua5.1luaiuplua.lua'
no file 'z:Program FilesLua5.1luaiuplua.luac'
no file 'z:Program FilesLua5.1libiuplua.lua'
no file 'iuplua.lua'
no file '.iuplua.lua'
no file 'z:Program FilesLua5.1luaiuplua.lua'
no file 'z:Program FilesLua5.1luaiupluainit.lua'
no file 'z:Program FilesLua5.1iuplua.lua'
no file 'z:Program FilesLua5.1iupluainit.lua'
no file 'z:Program FilesLua5.1luaiuplua.luac'
no file 'z:Program FilesLua5.1luaiupluaiuplua.lua'
no file 'z:Program FilesLua5.1clibsiuplua.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
很确定这是一个路径问题,但我不知道如何解决。
问题是iuplua
实际上被命名为iuplua51
。默认的package.cpath
通常在Lua的Windows版本上进行编辑,以包括其中包含?51
的模式,从而获取具有Lua版本号和常用路径的DLL。例如,我当前安装的Lua For Windows有以下内容:
P: \Data\PhotoArchive>luaLua 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.dll;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来看,很可能"很快"就会移植,这些CD和IM现在与5.2兼容。