我使用luarocks安装了luaxml模块。我曾使用luaxml来调用lua脚本。但是收到错误
Lua脚本:
xml = require("LuaXml");
local xobj = xml.eval('<Cmd Message="Hello"/>');
session:consoleLog("INFO","The message in the XML is "..xobj["Message"].."\n");
错误:
mod_lua.cpp:203 error loading module 'LuaXml' from file '/usr/local/lib/lua
/5.2/LuaXML_lib.so': /usr/local/lib/lua/5.2/LuaXML_lib.so: undefined symbol:
luaopen_LuaXml
stack traceback:
[C]: ?
[C]: in function 'require'
我已经看到了动态添加库到Lua的概念,但我无法理解。谁能帮我吗。简而言之,以便如何将核心模块luaxml与脚本链接起来。 另一个问题我如何测试是否安装了通过luarocks安装的模块luaxml。
答案 0 :(得分:0)
nm -g /usr/lib/lua/5.1/LuaXML_lib.so
的输出告诉我们,此文件导出luaopen_LuaXML_lib
,而不是luaopen_LuaXML
,这是require("LuaXml")
所需要的。
现在我不知道为什么require("LuaXml")
正在打开/usr/lib/lua/5.1/LuaXML_lib.so
。它应按此顺序查找LuaXM.so
或LuaXml.lua
。
LuaXML的工作原理是加载LuaXml.lua
require("LuaXML_lib")
。然后加载LuaXML_lib.so
。
您的LUA_CPATH
或package.cpath
可能存在错误。