我将使用 LUA,我的目标是运行一个使用 lausocket 和 luaXML 来完成任务的脚本。
我正在使用 Windows 2012 Server 64 位,我的 IBM IDOL 11 文件夹中的两个文件中已经有 LUA 编译器:
- lua53.exe
- lua53.dll
问题是我没有任何 lua 头目录来指向安装 luarocks,所以我从官方 LUA 5.3.4 中获取了头目录。一切顺利,我在系统上安装了适用于 Windows 的 laurocks 2.4.4,并使用命令成功安装了 luasocket
c:\luarocks install luasocket
问题出现在 luaXML 上。
用命令
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 lib和lua 5.3不兼容,luaxml-101012-1和luaxml-101012-2只支持lua 5.1而不支持lua 5.3。
所以我尝试使用最新版本的 luaxml 库:
luarocks install luaxml 130610-1
结果:
Error: luaxml 130610-1 supports only Lua 5.2 but not Lua 5.3.
我怎样才能继续在系统上安装 luaXML 并运行我拥有的 .lua 脚本?
感谢大家的任何建议!