Windows下编译带LFS的Lua5.3

2020-08-19 11:13:08 浏览数 (1)

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

0 人点赞