2012-04-27 19 views
5

Albo jestem przemęczony, albo ślepy. Chcę nauczyć się pracy w sieci z Luą i dlatego muszę zainstalować bibliotekę socket, więc mogę wymagać tego z łatwością, ale nie wiem, które pliki powinienem "wymagać". Przykład mówi:Instalowanie biblioteki gniazd Lua

local socket = require("socket") 

ale jak już mówiłem, nie wiem, które pliki należy podać, jeśli mogę użyć socket.lua to nie działa i pojawia się: No files found.

mam lib stąd: Lua socket download

Czy jest jakiś inny sposób, aby zainstalować lib gniazdo?

+3

Czy coś nie tak z [instrukcją instalacji?] (http://w3.impa.br/~diego/software/luasocket/installation.html) –

+0

może "# luarocks install luaso Polecenie cket' może ci pomóc. –

Odpowiedz

12

Po załadowaniu modułu za pomocą require Lua używa ścieżek pakietu, aby określić, gdzie szukać modułu. Zajrzyj do sekcji Modules w podręczniku Lua. W szczególności sekcja dotycząca package.path i package.cpath.

package.path: Ścieżka wykorzystywane przez wymaga, aby wyszukać ładowarki Lua (.lua moduły)
package.cpath: Ścieżka wykorzystywane przez wymaga wyszukiwania do ładowarki (C .so/modułów dll)

można sprawdzić co obecne ścieżki są:

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

Jeśli zainstalujesz LuaSocket do lokalizacji w aktualnej ścieżki pakietu Lua powinien być w stanie zlokalizować i załadować go.

Można również zmodyfikować ścieżki pakietów przed wywołaniem require. Na przykład, jeśli utworzyć folder dla swojego projektu i wyodrębnić bibliotekę LuaSocket do podkatalogu o nazwie libs wewnątrz folderu projektu:

Project 
| 
> libs 
    | 
    > lua 
     | 
     > socket   
    > socket 
    > mime 

można ustawić ścieżki pakietu w stosunku do projektu przed wami require gniazda biblioteka (zastąpił /?.dll dla /?.so na Linux):

package.path = package.path..';./libs/lua/?.lua' 
package.cpath = package.cpath..';./libs/socket/?.dll;./libs/mime/?.dll' 
local socket = require 'socket' 
0

użyć tego polecenia w systemie Linux:

#luarocks install luasocket 

użycie następnego polecenia, aby zobaczyć konfiguracji ścieżek

#luarocks 

Musisz użyć domyślnego konta Linux (patrz: Konfiguracja):

$lua 
> socket = require ("socket") 

lub użyj:

> socket = require 'socket'