undefined symbol:luaopen_LuaXml

时间:2014-06-05 12:33:26

标签: lua luarocks luaxml

我使用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。

1 个答案:

答案 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.soLuaXml.lua

LuaXML的工作原理是加载LuaXml.lua require("LuaXML_lib")。然后加载LuaXML_lib.so

您的LUA_CPATHpackage.cpath可能存在错误。