2014-06-05 16 views
5

używam lua 5.1 w linux system.I zainstalowany luasocket 2.0.2 użyciu tego manual .Ale kiedy wykonać poniższy kod pliku test.luaBłąd podczas instalacji lua gniazdo

socket = require("socket") 
print(socket._VERSION) 

uzyskać następujące błędy:

lua: ./usr/local/share/lua/5.1/socket.lua:14: loop or previous error loading module 'socket' 

stack traceback: 

    [C]: in function 'require' 

    ./usr/local/share/lua/5.1/socket.lua:14: in main chunk 

    [C]: in function 'require' 

    test.lua:1: in main chunk 

    [C]: ? 

ale mam włączone zmienną środowiskową jak poniżej:

LUA_PATH=/usr/local/share/lua/5.1/?.lua;?.lua 

LUA_CPATH=/usr/local/lib/lua/5.1/?.so;?.so 

Odpowiedz

2

Ten błąd występuje zwykle, gdy masz pętlę w swoich połączeniach require, na przykład, gdy wykonujesz require "socket" i z tego modułu ponownie wykonujesz require "socket", zanim zakończy się pierwsze wywołanie .

Sprawdź wiersz 14 w pliku socket.lua. Prawdopodobnie powinien mieć coś w rodzaju local socket = require("socket.core") (a nie require("socket")). Aby sprawdzić, czy problem dotyczy ładowania socket.core, spróbuj wykonać require "socket.core" w swoim własnym skrypcie, ponieważ może to dać lepszy komunikat o błędzie.

+1

bt teraz wystąpił błąd "błąd ładowania modułu" socket.core 'z pliku' /usr/local/lib/lua/5.1/socket/core.so ': \t/usr/local/lib/lua/5.1/socket/core.so: undefined symbol: luaL_getmetatable " –

+1

Możesz sprawdzić to pytanie wstępne i pierwszą odpowiedź: http://stackoverflow.com/questions/8361437/linker-error-lunatic-python-lua-requiresocket -undefined-symbol-lua-getme –