IUP для 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

Я уверен, что это проблема пути, но я не знаю, как ее исправить.

1 ответ

Решение

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

P: \ Data \ фотоархив> Lua
Lua 5.1.4  Copyright (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.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.

Другие вопросы по тегам