9

我正在尝试在为 Ubuntu 12 x64 编译的 Linux Mint 16 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"

搜索丢失的依赖项我没有得到任何结果;似乎找到了所有动态依赖项,但上面的未定义符号错误仍然存​​在。

想法?

4

2 回答 2

25

快速帮助:

$ echo _ZN18QXmlDefaultHandlerC2Ev|c++filt
QXmlDefaultHandler::QXmlDefaultHandler()

因此,您没有QXmlDefaultHandler. 谷歌搜索我们可以在这里找到,至少 Qt-4.8 和 Qt-5.3 包含这个库。

我认为,您实际运行的 Qt 库与编译可执行文件之间存在某种类型的不兼容。我的建议是从源代码重新编译该可执行文件,在您的薄荷糖上。

并非不可能,从 ubuntu 移植源代码包对您来说有点困难,在这种情况下,我建议进行简单的上游源代码重新编译(或者甚至二进制下载,如果有的话)。

于 2014-08-08T16:19:41.280 回答
3

你不能像那样在 Mint 上运行 Ubuntu 二进制文件。二进制文件在发行版之间通常不是二进制兼容的。你能找到一个 Mint 版本吗?如果没有,您将不得不自己构建它。

于 2014-08-08T16:06:26.487 回答