11

疲れているか目が見えないかのどちらかです。Lua を使用したネットワークを学習したいので、socketlib をインストールする必要があるため、簡単に要求できますが、どのファイルを「要求」すればよいかわかりません。例は次のように述べています。

local socket = require("socket")

しかし、私が言ったように、どのファイルを含めるべきかわかりsocket.luaませんNo files found.

ここからライブラリを取得しました:Lua socket download

または、ソケット lib をインストールする別の方法はありますか?

4

2 に答える 2

14

Luaでモジュールをロードするとrequire、パッケージ パスを使用してモジュールを探す場所が決定されます。Lua マニュアルのモジュールのセクションを見てください。具体的には、package.pathおよびのセクションpackage.cpath

package.path: require が Lua ローダー (.lua モジュール)
を検索するために使用するパス package.cpath: require が C ローダー (.so/.dll モジュール) を検索するために使用するパス

現在のパスが何であるかを確認できます。

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

LuaSocket を現在のパッケージ パス内の場所にインストールすると、Lua はそれを見つけてロードできるはずです。

または、 を呼び出す前にパッケージ パスを変更できますrequire。たとえば、プロジェクト用のフォルダーを作成し、libsプロジェクト フォルダー内で呼び出されるサブフォルダーに LuaSocket ライブラリを抽出する場合:

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

requireソケット ライブラリ ( Linux の代わり)/?.dllを使用する前に、プロジェクトに相対的なパッケージ パスを設定できます。/?.so

package.path = package.path..';./libs/lua/?.lua'
package.cpath = package.cpath..';./libs/socket/?.dll;./libs/mime/?.dll'
local socket = require 'socket'
于 2012-04-27T22:52:47.323 に答える