未定义的符号:luaopen_LuaXml

我已经使用luarocks安装了luaxml模块。我已经在lua脚本中调用了luaxml,但是出现了错误。

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模块是否已安装。

点赞
用户107090
用户107090

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

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

也许你的 LUA_CPATHpackage.cpath 中有错误。

2014-06-06 11:19:23