我正在尝试在Linux Mint 16 x64上运行可执行文件,该文件是为Ubuntu 12 x64编译的。 可执行文件在运行时动态使用Qt 5.1.1。我收到错误:
loaded the dummy plugin
loaded the Linux plugin
updating server status
./executableName: symbol lookup error: ./executableName: undefined symbol: _ZN18QXmlDefaultHandlerC2Ev
当我跑步时
ldd executableName | grep "not found"
搜索缺少的依赖项我没有得到结果;似乎找到了所有动态依赖关系,但上面的未定义符号错误仍然存在。
思想?
答案 0 :(得分:24)
快速帮助:
$ echo _ZN18QXmlDefaultHandlerC2Ev|c++filt
QXmlDefaultHandler::QXmlDefaultHandler()
因此,您没有QXmlDefaultHandler
的构造函数。谷歌搜索我们可以在这里找到,至少Qt-4.8和Qt-5.3包含这个库。
我认为,实际运行的Qt库与编译可执行文件之间存在某种类型的不兼容性。我的建议是从源代码重新编译该可执行文件,但是。
从ubuntu移植源包对你来说有点困难并非不可能,在这种情况下我建议一个简单的上游源重新编译(如果有的话,甚至是二进制下载)。
答案 1 :(得分:2)
你不能像这样在Mint上运行Ubuntu二进制文件;二进制文件在分布之间通常不是二进制兼容的。你能找到Mint构建吗?如果没有,你必须自己构建它。