Как запустить проект LUA с пакетом IUP в ZeroBrane Studio?

У меня возникла проблема с запуском/отладкой проекта в ZeroBrane Studio. У меня есть все исходники.

С помощью команды в cmd.exe:

lib\lua52.exe OmapTest2.lua

запускает проект, но я хочу отладить проект. Когда я запускаю OmapTest2.lua в ZBS, он выдает мне эту .. ошибку (?):

Program starting as '"C:\ZeroBraneStudio\bin\lua52.exe" -e "io.stdout:setvbuf('no')" "C:\ZeroBraneStudio\cfg\user.lua"'.
Program 'lua52.exe' started in 'C:\Radek\Tester' (pid: 9804).
C:\ZeroBraneStudio\bin\lua52.exe: C:\ZeroBraneStudio\bin\lua\iuplua.lua:6: attempt to index global 'iup' (a nil value)
stack traceback:
    C:\ZeroBraneStudio\bin\lua\iuplua.lua:6: in main chunk
    [C]: in function 'require'
    C:\ZeroBraneStudio\cfg\user.lua:1: in main chunk
    [C]: in ?
Program completed in 1.53 seconds (pid: 9804).

Не знаю, что может быть не так. Что я сделал:

Что я должен делать? Заранее спасибо.


person Balttazarr    schedule 21.08.2020    source источник
comment
Кажется, что у ZBS есть файл iuplua.lua, который мешает вашему коду. Загруженный вами файл iuplua.lua на самом деле встроен в библиотеку iuplua52.dll. Так что отмените это, источники IUP вам не помогут.   -  person Antonio Scuri    schedule 21.08.2020
comment
Если вы посмотрите на документацию IUP в IUP/Guide/Lua Binding, вы увидите, что для работы requireiuplua вам нужно использовать наш дистрибутив LuaBinaries или отредактировать свой LUA_CPATH   -  person Antonio Scuri    schedule 21.08.2020


Ответы (1)


Скопируйте чистые библиотеки C DLL, такие как iup.dll, в \ZeroBraneStudio\bin

Скопируйте библиотеки DLL модулей Lua, например iuplua52.dll, в \ZeroBraneStudio\bin\clibs52.

ZeroBrane Studio использует общие библиотеки DLL Lua, которые не имеют необходимого суффикса для IupLua в LUA_CPATH. Поэтому вам нужно добавить его вручную. Отредактируйте package.cpath в начале вашего скрипта:

package.cpath = package.cpath .. ;C:/ZeroBraneStudio/bin/clibs52/?52.dll

person Antonio Scuri    schedule 21.08.2020
comment
1) Я не смог изменить package.cpath внутри Edit/Preferences/Settings, потому что они предназначены только для среды ZeroBrane, а не для среды сценария. Каждый скрипт имеет свою среду. - person Antonio Scuri; 21.08.2020
comment
2) Мне пришлось жестко указать путь C:/ZeroBraneStudio/bin/clibs52/ в скрипте, потому что я не мог найти, куда он экспортируется в среду скрипта. - person Antonio Scuri; 21.08.2020
comment
3) Было бы неплохо, если бы в ZBS была поддержка суффикса, встроенного в его логику, или если бы он начал использовать дистрибутив LuaBinaries. - person Antonio Scuri; 21.08.2020
comment
Я жестко запрограммировал package.cpath в своем скрипте, как и вы, но где я могу получить DLL-модули Lua? Найден iuplua52.dll в каталоге проекта «lib». Я также нашел много dll в пути C:\ZeroBraneStudio\bin, таких как упомянутые iuplua51.dll , lua52.dll и другие. Попытался запустить скрипт снова, но безуспешно. - person Balttazarr; 24.08.2020
comment
ZBS, который я скачал, не включает IUP. Мне нужно загрузить IUP с веб-сайта IUP. И вам нужно загрузить 2 пакета: основной пакет IUP и пакет IupLua 5.2. - person Antonio Scuri; 25.08.2020
comment
Не могли бы вы уточнить? Что именно скачать, куда вставить? Я скачал 'iup-3.30_Sources', вставил 'iup' в папку моего проекта 'lib' в ZeroBrane Studio в 'bin' в 'src' и 'packages' и основной каталог ZeroBrane Stuido - person Balttazarr; 28.08.2020
comment
Если вы загружаете исходники, вам понадобится компилятор C/C++ для сборки IUP с нуля. В загрузках вы должны выбрать предварительно скомпилированные бинарные пакеты. sourceforge.net/projects/iup/files/3.30 Например, вы можете скачать Пакеты исполняемых файлов инструментов доступны здесь: sourceforge.net/projects/iup/files /3.30/Инструменты%20Исполняемые файлы/ - person Antonio Scuri; 29.08.2020