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