2012-04-27 67 views
5

Hoặc tôi bị quá tải hoặc bị mù. Tôi muốn học mạng với Lua và do đó tôi phải cài đặt các lib socket, vì vậy tôi có thể yêu cầu nó một cách dễ dàng, nhưng tôi không biết, những tập tin mà tôi nên "yêu cầu". Ví dụ nói:Cài đặt thư viện ổ cắm Lua

local socket = require("socket") 

nhưng như tôi đã nói, tôi không biết đó là file tôi nên bao gồm, nếu tôi sử dụng socket.lua nó không hoạt động và tôi nhận được: No files found.

tôi có lib từ đây: Lua socket download

Hoặc là có một cách khác để cài đặt các lib ổ cắm?

+3

Is có điều gì đó sai với [hướng dẫn cài đặt?] (http://w3.impa.br/~diego/software/luasocket/installation.html) –

+0

có thể là '# luarocks install luaso Lệnh cket' có thể giúp bạn. –

Trả lời

12

Khi bạn tải mô-đun với require Lua sử dụng đường dẫn gói để xác định vị trí tìm mô-đun. Hãy xem phần Modules của hướng dẫn Lua. Cụ thể, phần trên package.pathpackage.cpath.

package.path: Con đường được sử dụng bởi yêu cầu để tìm kiếm một bộ nạp Lua (.lua module)
package.cpath: Con đường được sử dụng bởi yêu cầu để tìm kiếm một bộ nạp C (.so/.dll module)

bạn có thể kiểm tra những con đường hiện tại là:

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

Nếu bạn cài đặt LuaSocket vào một vị trí trong đường dẫn gói hiện tại của bạn Lua sẽ có thể xác định vị trí và tải nó.

Hoặc, bạn có thể sửa đổi đường dẫn gói trước khi gọi require. Ví dụ, nếu bạn tạo một thư mục cho dự án của bạn và trích xuất các thư viện LuaSocket đến một thư mục con gọi là libs trong thư mục dự án của bạn:

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

Bạn có thể thiết lập các đường dẫn gói liên quan đến dự án của bạn trước khi bạn require ổ cắm thư viện (thay /?.dll cho /?.so trên Linux):

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

sử dụng lệnh này trên hệ thống Linux của bạn:

#luarocks install luasocket 

việc sử dụng các lệnh tiếp theo để xem đường dẫn CẤU HÌNH

#luarocks 

Bạn cần phải sử dụng tài khoản linux mặc định (xem: CẤU HÌNH):

$lua 
> socket = require ("socket") 

hoặc sử dụng này:

> socket = require 'socket'