我已经使用luarrocks安装了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与脚本链接起来。另一个问题,我如何通过luarrocks测试是否安装了模块luaxml。
nm -g /usr/lib/lua/5.1/LuaXML_lib.so
的输出告诉我们这个文件输出的是luaopen_LuaXML_lib
,而不是require("LuaXml")
需要的luaopen_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
有错误