8LFS这个库可以实现平台无关(Linux和Windows通用)的文件系统访问 安装后只需 require "lfs"即可使用
但是Windows下面不管是下载Lua5.3.exe或者下载Lua5.3的源码进行编译,都是不包含lfs库的。这篇文章将讲解如何包含lfs库并重新编译Lua.exe。
步骤一:下载Lua源码并解压
http://www.lua.org/download.html
要用到的只是解压后src源码目录。可以看到并没有包含lfs的任何文件。
步骤二:LuaFileSystem的源码和编译修改 1、从github下载源码
https://github.com/keplerproject/luafilesystem 2、将lfs.h和lfs.c文件copy到lua的编译目录下) 3、修改用来编译的Makefile(lua-5.3.4/src/目录下)。 在“LIB_O = ”一行中添加 “lfs.o”,文件尾添加“lfs.o: lfs.c lfs.h” 4、在linit.c中的static const luaL_Reg loadedlibs[]里加入“{LUA_LFSLIBNAME, luaopen_lfs}” 5、在lualib.h 中加入“#define LUA_LFSLIBNAME "lfs””、“LUAMOD_API int (luaopen_lfs) (lua_State *L);” 6、重新make clean、make
如果在make的时候报错找不到“lua.h”请将lfs.c中的
#include <lua.h> #include <lauxlib.h> #include <lualib.h> 改为
#include "lua.h" #include "lauxlib.h"
步骤三:编译Lua源码
先我们找到 VS2017 开发人员命令提示打开它(或者VS2015 开发人员命令提示)
然后切换至刚刚我们解压缩出来的 Lua 下的 src 文件夹下
cd /d c:/lua/src 切换至 lua 源码包的 src 下之后执行
cl /MD /O2 /c /DLUA_BUILD_AS_DLL *.c
(备注:如果找不到cl.exe,则安装VS2017的时候需要勾选 C /C 桌面开发)
ren lua.obj lua.o ren luac.obj luac.o link /DLL /IMPLIB:lua5.3.4.lib /OUT:lua5.3.4.dll *.obj link /OUT:lua.exe lua.o lua5.3.4.lib lib /OUT:lua5.3.4-static.lib *.obj link /OUT:luac.exe luac.o lua5.3.4-static.lib --------------------- 生成的文件有 lua5.3.4.dll lua5.3.4.exp lua5.3.4.lib lua5.3.4-static.lib lua.exe 这表明编译 Lua 源码工程已完成,此时我们将 C:luasrc; 配置到 Path 环境变量下即可愉快的使用 lua 命令了。
步骤四:使用lfs
例如遍历一个文件夹下所有文件:
参考文章:
https://blog.csdn.net/qq_20363225/article/details/80806070
https://www.cnblogs.com/linxiong945/p/4106053.html
https://blog.csdn.net/xiaoping0915/article/details/74823726