windows 环境下,为lua添加luasocket库

时间:2024-04-04 16:43:52

1.首先下载luasocket库

可以直接下载编译好的库,也可以去github上下载源码后自己自己编译:
到官网上看了一下luasocket 的install方案,有几点还是值得注意的,luasocket库包含了以下文件,如果下载的库里面的文件少了,可能造成某些功能无法使用:
windows 环境下,为lua添加luasocket库‘’
然后贴一张这边编译好的库的层次结构:
windows 环境下,为lua添加luasocket库
主要这三个文件夹,其他的可以不要,再贴一下这几个文件夹内部的层级结构:
windows 环境下,为lua添加luasocket库windows 环境下,为lua添加luasocket库      
windows 环境下,为lua添加luasocket库windows 环境下,为lua添加luasocket库
这样的话几个目录的层级结构就很清楚了
还有一点需要注意的就是这里面的文件是依赖于lua5.1.x的,如果lua的版本与此不匹配也可能出现问题(我试了下lua5.3不行),这一切准备完毕后就可以继续下一步了。

2.将luasocket库嵌入lua

我们先来认识一下里面的一些文件,编译好的库里面包含两个dll文件,其余的都是lua文件,如果我们了解lua中的require的机制,那么下面的内容应该很easy了,lua中的require加载一个模块时,会先从它的全局环境中去拿两个变量的值,一个是LUA_PATH,另一个是LUAC_PATH,(注意大小写),如果第一个值不为空,那么lua会以其值提供的一个路径模式去匹配相应路径下的文件,如果第二个值不为空,lua会以同样的方式去相应路径下去加载c的库,(比如我们下载的文件中的dll),我们可以通过系统的环境变量来设置上述两个变量的值,这样的话,只要我们把这两个环境变量的值设置成我们下载的库中的相应路径,那就ok了。下面来看图:
windows 环境下,为lua添加luasocket库windows 环境下,为lua添加luasocket库
这里说明一下,我是把库里面的文件放到了我lua的解释器文件夹下(D:Lua5.1),你们也可以放到任意地方,再看我的环境变量(LUA_CPATH)的值:我的luasocket库的上一级目录路径(我的在D:\Lua5.1)+?.dll,这里的问号会被require的参数替换掉,再看我的环境变量(LUA_PATH)的值:我的luasocket库的上一级目录路径(我的在D:\Lua5.1)+lua\?.lua,这里的lua就是上面图片中的那个lua的文件夹,问号会被require的参数替换掉,因为那个lua的文件夹里面还有一个socket的文件夹,所以我们需要再添luasocket库的上一级目录路径(我的在D:\Lua5.1)+lua\socket\?.lua,注意LUA_PATH中的这两个路径要用;隔开。简单解释一下,上面配置的路径的意思就是当我require一个lua的模块时,他会从我们前面luasocket库的lua文件夹中和lua文件夹下的socket文件夹中寻找相应的lua文件,当我们require一个c的库的时候,会从我们的luasocket库的mime文件夹和socket文件夹下去加载相应的库文件,为什么这里没有针对mime和socket文件夹分开设置路径?打开luasocket库中的socket.lua文件会发现,它帮我们加载时填写的路径里面已经包含了相应的目录(一个是socket.core另一个是mim.core)这个点在c下面会被翻译为目录分隔符,所以我们不需要分开处理,好的,到这里,如果前面的工作没问题的话我们的配置工作就完成了,下面我们就来打开一下我们的luasocket库:
lua的解释器程序中直接编辑require("socket"),然后打印返回值的_VERSION 就可以看到当前luasocket的版本信息了,下面是运行效果图:
windows 环境下,为lua添加luasocket库
到这里,luasocket库怎么添加到windows环境中的方法就已经说完了,博主水平有限,如有不正确的地方欢迎批评指正