当我使用
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?
Thanks!
如果你想require("socket.core")
,共享库(dll)必须有一个名为 luaopen_socket_core 的导出函数(LuaSocket 库有)。因此,它总是需要被称为require("socket.core")
.
如果你想将DLL移动到其他文件夹中,你必须修改package.cpath http://www.lua.org/manual/5.1/manual.html#pdf-package.cpath,其中包含将要检查的文件模式。
假设您要将 LuaSocket 二进制文件移动到folder
。您必须将二进制文件放入folder/socket/core.dll
并修改package.cpath
打电话之前require
:
package.cpath = package.cpath .. ';folder/?.dll'
local socket = require('socket.core')
?
代表传递给的名称require
转换为文件路径:. -> /
, i.e. socket.core -> socket/core
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)