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

当我使用

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?

谢谢!

原文链接 https://stackoverflow.com/questions/6244380

点赞
stackoverflow用户312586
stackoverflow用户312586

我认为你只需要删除末尾的点。

local socket = require("folder.core")
2011-06-05 17:11:14
stackoverflow用户221509
stackoverflow用户221509

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

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

假设你想将LuaSocket二进制文件移动到folder中,你需要将二进制文件放置在folder/socket/core.dll中,并在调用require之前修改package.cpath

package.cpath = package.cpath .. ';folder/?.dll'
local socket = require('socket.core')

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

2011-06-05 17:13:36