LINUX.ORG.RU

Debian, Lua, iup — не прикручивается хоть убейся...

 ,


0

1

... не смотря на кажущуюся легкость сего. уже пару дней бьюсь (

Итак, имеется дебиан джесси и Lua из реп:

$ uname -r
3.16.0-4-amd64

$ lua -v
Lua 5.2.3  Copyright (C) 1994-2013 Lua.org, PUC-Rio

имеется, также, желание поиграться с опенгл-ом и прочими возможностями iup-а. берем пример из доков iup-а и запускаем

содержимое dialog.lua

--IupDialog Example in IupLua
--Creates a simple dialog.

require( "iuplua" )

vbox = iup.vbox { iup.label {title="Label"}, iup.button { title="Test" } }
dlg = iup.dialog{vbox; title="Dialog"}
dlg:show()

if (iup.MainLoopLevel()==0) then
  iup.MainLoop()
end

запускаем:

# lua dialog.lua 
lua: dialog.lua:4: module 'iuplua' not found:
        no field package.preload['iuplua']
        no file '/usr/local/share/lua/5.2/iuplua.lua'
        no file '/usr/local/share/lua/5.2/iuplua/init.lua'
        no file '/usr/local/lib/lua/5.2/iuplua.lua'
        no file '/usr/local/lib/lua/5.2/iuplua/init.lua'
        no file '/usr/share/lua/5.2/iuplua.lua'
        no file '/usr/share/lua/5.2/iuplua/init.lua'
        no file './iuplua.lua'
        no file '/usr/local/lib/lua/5.2/iuplua.so'
        no file '/usr/lib/x86_64-linux-gnu/lua/5.2/iuplua.so'
        no file '/usr/lib/lua/5.2/iuplua.so'
        no file '/usr/local/lib/lua/5.2/loadall.so'
        no file './iuplua.so'
stack traceback:
        [C]: in function 'require'
        dialog.lua:4: in main chunk
        [C]: in ?

сидим недоумеваем... под виндой завелось из коробки...

дебиан-вей приветствуется, но сойдет любое решение. я уже задрался, чесслово. явно ж в два аптэгэтинсталла решается.. куда копать?

★★★★★
Ответ на: комментарий от nihirash

Чую, что сам iup у тебя не стоит.

Все у меня стоит как надо! (еслди вы понимаете о чем я :)

locate libiup
/usr/lib/libiup.so
/usr/lib/libiup_pplot.so
/usr/lib/libiupcd.so
/usr/lib/libiupcontrols.so
/usr/lib/libiupgl.so
/usr/lib/libiupim.so
/usr/lib/libiupimglib.so
/usr/lib/libiuplua51.so
/usr/lib/libiuplua_pplot51.so
/usr/lib/libiupluacd51.so
/usr/lib/libiupluacontrols51.so
/usr/lib/libiupluagl51.so
/usr/lib/libiupluaim51.so
/usr/lib/libiupluaimglib51.so
/usr/lib/libiupluatuio51.so
/usr/lib/libiuptuio.so

можно попробовать создать симлинк и положить прямо в сей каталог

$ ln -s /usr/lib/libiup.so ./iuplua.so

$ lua dialog.lua 
lua: error loading module 'iuplua' from file './iuplua.so':
        ./iuplua.so: wrong ELF class: ELFCLASS32
stack traceback:
        [C]: in ?
        [C]: in function 'require'
        dialog.lua:4: in main chunk
        [C]: in ?

$ file /usr/lib/libiup.so 
/usr/lib/libiup.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped

Вижу что версия не та, как поставить ту?

pihter ★★★★★
() автор топика
Ответ на: комментарий от buddhist

Что говорит file `which lua`?

# which lua
/usr/bin/lua

# file /usr/bin/lua
/usr/bin/lua: symbolic link to /etc/alternatives/lua-interpreter

# file /etc/alternatives/lua-interpreter
/etc/alternatives/lua-interpreter: symbolic link to /usr/bin/lua5.2

# file /usr/bin/lua5.2
/usr/bin/lua5.2: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=41518fc0e99cb6feb1ce33a8da48bf2c4bdb42d9, stripped

Поставь 64-битный iup

Как? Или я или лыжи! В пакетах нигде не нашел. Из искодников не осилил пока. Да и не Ъ это.

Мультилибом пользуешься?

Нет. Это обо что?

pihter ★★★★★
() автор топика
Ответ на: комментарий от buddhist

Мультилиб это репозитории пакетов для разных архитектур

А, ну тогда пользуюсь.

Как ставил iup, какой командой?

Не знаю. Я тут уже второй день воюю с ним. Откуда оно там появилось (в какой момент) — я ХЗ. Думаю, что когда я ставил из исходников, там был инсталл-скрипт, который завершился с ошибкой, вот видимо он и накидал.

Откуда поставить iup чтоб по-Христу я так и не нашел (

pihter ★★★★★
() автор топика
Ответ на: комментарий от Dark_SavanT

кагбэ намекаэ что у тебя iup для 5.1 lua

да я в курсе. там сначала был луа 5.1

но, даже если бы и так — чеж он не находит-то ее?

и, да, как поставить нормальный iup? ну не может же быть чтоб его в пакетах не было. или может?

pihter ★★★★★
() автор топика
Ответ на: комментарий от buddhist

попробуй с ними.

ушел на другую дебиан систему. исходные данные там такие же. скачал, запустил скриптик установки

# chmod +x install                                                                                                                                                                                       
# ./install                                                                                                                                                                                              
                                                                                                                                                                                                                                                    
  This script will install the >>Run Time<< libraries in the system                                                                                                                                                                                 
  from the build directories or from the unpacked download.                                                                                                                                                                                         
  It was tested in Ubuntu and in Fedora.                                                                                                                                                                                                            
                                                                                                                                                                                                                                                    
  Must be run with "sudo" at the library folder, or install will fail:                                                                                                                                                                              
     sudo ./install                                                                                                                                                                                                                                 
                                                                                                                                                                                                                                                    
  The directory lib/Linux316_64 was not found,                                                                                                                                                                                                      
  so installing from unpacked download.                                                                                                                                                                                                             
                                                                                                                                                                                                                                                    
  The downloaded package must already be unpacked in the current directory.                                                                                                                                                                         
  Do NOT unpack different packages in the same directory.                                                                                                                                                                                           
  For example:                                                                                                                                                                                                                                      
     mkdir iup
     cd iup
     tar -xpvzf ../iup-X.X_Linux26g4_lib.tar.gz
 
Press Enter to continue or Ctrl+C to abort...
 
«libiuplua52.so» -> «/usr/lib/libiuplua52.so»
«libiupluacd52.so» -> «/usr/lib/libiupluacd52.so»
«libiupluacontrols52.so» -> «/usr/lib/libiupluacontrols52.so»
«libiupluagl52.so» -> «/usr/lib/libiupluagl52.so»
«libiupluaglcontrols52.so» -> «/usr/lib/libiupluaglcontrols52.so»
«libiupluaim52.so» -> «/usr/lib/libiupluaim52.so»
«libiupluaimglib52.so» -> «/usr/lib/libiupluaimglib52.so»
«libiupluamatrixex52.so» -> «/usr/lib/libiupluamatrixex52.so»
«libiuplua_mglplot52.so» -> «/usr/lib/libiuplua_mglplot52.so»
«libiuplua_plot52.so» -> «/usr/lib/libiuplua_plot52.so»
«libiuplua_scintilla52.so» -> «/usr/lib/libiuplua_scintilla52.so»
«libiupluatuio52.so» -> «/usr/lib/libiupluatuio52.so»
«libiupluaweb52.so» -> «/usr/lib/libiupluaweb52.so»

потом еще вот этот:

# ./config_lua_module 
 
  This script will configure the Tecgraf libraries in the system
  to be used from Lua. It was tested in Ubuntu and in Fedora.
 
  The current Lua version is defined by the variables:
    USE_LUA51 (default) or USE_LUA52 or USE_LUA52
 
  The Run Time libraries must be already installed on the system (see the install script).
  It assumes that Lua binaries are installed using system packages.
 
  Must be run with "sudo", or install will fail,
  for example:
     sudo ./config_lua_module
 
Press Enter to continue or Ctrl+C to abort...
 
«iuplua.so» -> «/usr/lib/libiuplua52.so»
«iupluacontrols.so» -> «/usr/lib/libiupluacontrols52.so»
«iupluacd.so» -> «/usr/lib/libiupluacd52.so»
«iupluagl.so» -> «/usr/lib/libiupluagl52.so»
«iuplua_pplot.so» -> «/usr/lib/libiuplua_pplot52.so»
«iupluaim.so» -> «/usr/lib/libiupluaim52.so»
«iupluaimglib.so» -> «/usr/lib/libiupluaimglib52.so»
«iupluatuio.so» -> «/usr/lib/libiupluatuio52.so»

и теперь при попытке запуска:

$ lua dialog.lua 
lua: error loading module 'iuplua' from file '/usr/lib/lua/5.2/iuplua.so':
        libiup.so: cannot open shared object file: No such file or directory
stack traceback:
        [C]: in ?
        [C]: in function 'require'
        dialog.lua:5: in main chunk
        [C]: in ?

pihter ★★★★★
() автор топика
Ответ на: комментарий от buddhist

А, пардон. Это я поставил луа-биндиннг на libiup.so а саму не поставил. Но я быстро исправился. Спасибо за помощь — заработало. Осталось таким же макаром завести опен гл

pihter ★★★★★
() автор топика

опенГЛ тоже прикрутилась. правда у них ошибка в установочном скрипте для lua5.2, но после доработки напильником завелось.

еще раз всем спасибо

pihter ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.