要么我太累了,要么我瞎了。我想学习 Lua 网络,因此我必须安装socket
lib,所以我可以轻松地要求它,但我不知道我应该“要求”哪些文件。例子说:
local socket = require("socket")
但正如我所说,如果我使用,我不知道应该包含哪些文件socket.lua
它不起作用,我得到:No files found
.
我从这里得到了库:Lua套接字下载 http://files.luaforge.net/releases/luasocket/luasocket/luasocket-2.0.2
或者,还有其他方法来安装套接字库吗?
当您加载模块时require
Lua 使用包路径来确定在哪里查找模块。看看Modules http://www.lua.org/manual/5.3/manual.html#6.3Lua 手册的部分。具体来说,该部分关于package.path
and package.cpath
.
package.path:require 用于搜索 Lua 加载器(.lua 模块)的路径
package.cpath:require 用于搜索 C 加载器(.so/.dll 模块)的路径
您可以检查当前路径是什么:
print(package.path..'\n'..package.cpath)
如果您将 LuaSocket 安装到当前包路径中的某个位置,Lua 应该能够找到并加载它。
或者,您可以在调用之前修改包路径require
。例如,如果您为项目创建一个文件夹并将 LuaSocket 库提取到名为的子文件夹中libs
在您的项目文件夹中:
Project
|
> libs
|
> lua
|
> socket
> socket
> mime
您可以先设置相对于您的项目的包路径require
套接字库(替代/?.dll
for /?.so
在 Linux 上):
package.path = package.path..';./libs/lua/?.lua'
package.cpath = package.cpath..';./libs/socket/?.dll;./libs/mime/?.dll'
local socket = require 'socket'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)