LuaSocket socket/core.dll需要的位置?

Joe*_*son 2 windows lua winsock require luasocket

我用的时候

local socket = require("socket.core")
Run Code Online (Sandbox Code Playgroud)

它工作正常,DLL位于"dir/socket/core.dll"但是当我移动dll说

"dir/folder/core.dll"并使用

local socket = require("folder.core.")
Run Code Online (Sandbox Code Playgroud)

它返回它被发现然而它找不到folder.core中的特定模块.

如何在socket.core要求之外使用Luasocket?

谢谢!

Mic*_*man 6

如果你愿意require("socket.core"),共享库(dll)必须有一个名为luaopen_socket_core的导出函数(LuaSocket库有).因此,它总是需要被称为require("socket.core").

如果要将DLL移动到其他文件夹中,则必须进行修改package.cpath,其中包含将要检查的文件模式.

假设您要将LuaSocket二进制文件移动到folder.您必须在调用之前将二进制文件放入folder/socket/core.dll并修改:package.cpathrequire

package.cpath = package.cpath .. ';folder/?.dll'
local socket = require('socket.core')
Run Code Online (Sandbox Code Playgroud)

?表示传递给require转换为文件路径的名称:. -> /,即socket.core -> socket/core.