IUP для Lua перестал работать на Windows XP - PullRequest
0 голосов
/ 09 января 2012

Я получаю следующую ошибку от 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 Ответ

1 голос
/ 10 января 2012

Проблема в том, что iuplua действительно называется iuplua51. Значение по умолчанию package.cpath обычно редактируется в сборках Lua Windows для включения шаблонов, включающих в себя ?51, для выбора DLL с номерами версий Lua, а также обычным путем. Например, моя текущая установка Lua для 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.

...