如何将luaXML与Lua5.3结合使用

如何将luaXML与Lua5.3结合使用,lua,luarocks,luaxml,Lua,Luarocks,Luaxml,我将与LUA合作,我的目标是运行一个使用lausocket和luaXML完成任务的脚本 我使用的是Windows 2012 Server 64位,我的IBM IDOL 11文件夹中已经有两个文件中的LUA编译器: lua53.exe lua53.dll 问题是我没有任何lua头目录指向安装Luarock,所以我从官方Lua5.3.4中获取了头目录。一切正常,我在系统上安装了laurocks 2.4.4 for Windows,并使用命令成功安装了luasocket c:\luarocks i

我将与LUA合作,我的目标是运行一个使用lausocket和luaXML完成任务的脚本

我使用的是Windows 2012 Server 64位,我的IBM IDOL 11文件夹中已经有两个文件中的LUA编译器:

  • lua53.exe
  • lua53.dll
问题是我没有任何lua头目录指向安装Luarock,所以我从官方Lua5.3.4中获取了头目录。一切正常,我在系统上安装了laurocks 2.4.4 for Windows,并使用命令成功安装了luasocket

c:\luarocks install luasocket
c:\luarocks install luaxml
luaXML出现了问题

用命令

c:\luarocks install luasocket
c:\luarocks install luaxml
我得到了错误

Installing https://luarocks.org/luaxml-101012-1.src.rock
C:\Program_Files\mingw-w64\x86_64-8.1.0-posix-sjlj-rt_v6-rev0\mingw64\bin\gcc.exe -O2 -c -o LuaXML_lib.o -IC:/Program Files (x86)/lua/5.3/include LuaXML_lib.c
LuaXML_lib.c: In function 'Xml_eval':
LuaXML_lib.c:284:17: warning: implicit declaration of function 'lua_objlen'; did you mean 'lua_len'? [-Wimplicit-function-declaration]
    int newIndex=lua_objlen(L,-1)+1;
                 ^~~~~~~~~~
                 lua_len
LuaXML_lib.c: In function 'luaopen_LuaXML_lib':
LuaXML_lib.c:415:2: warning: implicit declaration of function 'luaL_register'; did you mean 'lua_register'? [-Wimplicit-function-declaration]
  luaL_register(L, "xml", funcs);
  ^~~~~~~~~~~~~
  lua_register
C:\Program_Files\mingw-w64\x86_64-8.1.0-posix-sjlj-rt_v6-rev0\mingw64\bin\gcc.exe -shared -o LuaXML_lib.dll LuaXML_lib.o C:/MF_IDOLServer/cfs/lua_ide_files/bin/lua53_win64/lua53.dll -lm
LuaXML_lib.o:LuaXML_lib.c:(.text+0xd23): undefined reference to `lua_objlen'
LuaXML_lib.o:LuaXML_lib.c:(.text+0xf20): undefined reference to `lua_objlen'
LuaXML_lib.o:LuaXML_lib.c:(.text+0x1103): undefined reference to `luaL_register'
collect2.exe: error: ld returned 1 exit status

Error: Build error: Failed compiling module LuaXML_lib.dll
我在谷歌上搜索了这个错误,发现这是因为luaXML库和Lua5.3之间不兼容,luaXML-101012-1和luaXML-101012-2只支持Lua5.1,不支持Lua5.3

因此,我尝试使用最新版本的luaxml库:

luarocks install luaxml 130610-1
结果是:

Error: luaxml 130610-1 supports only Lua 5.2 but not Lua 5.3.
如何在系统上安装luaXML并运行我拥有的.lua脚本


谢谢大家的建议

我有同样的“追求”!我发现luaxml的Lua5.3兼容版本是CTAN存储库的一部分,由Michal Hoftich维护。[不过,我仍在努力让它发挥作用!非常感谢您对user1771398的贡献;最后,我通过下载luaXML 130610的zip,更改其rockspec,修改兼容性值写入“>5.2”使它发挥作用以及写入地址值以获取zip文件,从而避免从存储库下载。通过这种方式,编译成功完成。我知道这只是等待支持LUA 5.3的稳定luaXML版本的一种解决方法。您是将luaXML与LUA standalone一起使用还是在LuaTex中使用?我一直与LuaTex存在依赖关系,但出现了一个错误使用“unicode.utf8.char”,我不知道如何获取库。这已经由luaxml的开发人员修复。