2011-01-14 18 views
3

Ich versuche, IUP arbeiten auf Ubuntu. Ich habe die Binärdateien von Source und die Bibliotheken scheinen in /usr/lib/libiup*.so zu sein, aber wenn ich ein Skript wie die folgenden schreiben:Verwenden von IUP mit Lua auf Ubuntu

require("iuplua") 
iup.Message('Testing App!', 'Finished Successfully!') 

bekomme ich einen Fehler:

lua: attempt to call a nil value 
stack traceback: 
    [C]: ? 
    [C]: in function 'require' 
    test.lua:1: in main chunk 
    [C]: ? 

Ich sah eine Nachricht, die darauf hinwies, dass jemand es anscheinend repariert hat - ihr "LD_LIBRARY_PATH zeigte nicht auf die richtigen CD und IM Verzeichnisse" oder etwas Ähnliches. Ich konnte mein Problem mit der Umgebungsvariablen LD_LIBRARY_PATH nicht beheben. Ich habe eine weitere Notiz von 2008 gesehen, die besagt, dass die "IUPLua-Binärdateien lua-Bytecode fest codierten, der den Fehler verursacht". Ich habe versucht, aus den Quellen zu kompilieren, aber ich bekomme Fehler im Zusammenhang mit cd.h.

Jede Hilfe wäre - sehr geschätzt. Vielen Dank!

+0

Willkommen auf der IUP-Benutzer-Mailingliste: https: //lists.sourceforge .net/lists/listinfo/iup-users –

+0

Was bekommen Sie, wenn Sie 'für k, v in Paaren (iup) tun, drucken (k, v) ende '? –

Antwort

1

Hier ist etwas, das Sie überprüfen können, vielleicht wird es helfen.

Wenn Sie ein Modul mit laden, benötigen Sie. Lua verwendet die Paketpfade, um zu bestimmen, wo nach dem Modul gesucht werden soll.

package.path: Where Lua looks for .lua modules
package.cpath: Where Lua looks for .so/.dll modules

Werfen Sie einen Blick auf diesen Abschnitt des Handbuchs Lua: Modules. Genauer gesagt, der Abschnitt package.path und package.cpath.

können Sie überprüfen, was die Strompfade sind wie:

print(package.path.."\n"..package.cpath) 

Sie können die Pfade wie anhängen:

package.path = package.path..";/usr/lib/?.lua" 
package.cpath = package.cpath..";/usr/lib/?.so"