当我使用
local socket = require("socket.core")
它工作正常,该DLL位于“dir / socket / core.dll”,但是当我移动dll说
“dir / folder / core.dll”并使用
local socket = require("folder.core.")
它返回它被发现,但它无法findfolder.core中的特定模块。
如何在socket.core的要求之外使用Luasocket?
谢谢!
如果你想要require("socket.core")
,共享库(dll)必须有一个名为luaopen_socket_core(LuaSocket库)的导出函数。 因此,它总是需要被称为require("socket.core")
。
如果要将DLL移动到其他文件夹中,则必须修改package.cpath
,其中包含将检查的文件模式。
假设您要将LuaSocket二进制folder
移动到folder
。 您必须将二进制文件放在folder/socket/core.dll
并在调用require
之前修改package.cpath
:
package.cpath = package.cpath .. ';folder/?.dll' local socket = require('socket.core')
?
代表传递给require
翻译成文件路径的名字: . -> /
. -> /
,即socket.core -> socket/core
。
我想你只需要在最后删除点。
local socket = require("folder.core")