符号查找错误:./ executableName:未定义符号:_ZN18QXmlDefaultHandlerC2Ev

Dan*_*ett 9 linux linker qt shared-libraries symbol-table

我试图在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
Run Code Online (Sandbox Code Playgroud)

我跑的时候

ldd executableName | grep "not found"
Run Code Online (Sandbox Code Playgroud)

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

思考?

pet*_*ica 25

快速帮助:

$ echo _ZN18QXmlDefaultHandlerC2Ev|c++filt
QXmlDefaultHandler::QXmlDefaultHandler()
Run Code Online (Sandbox Code Playgroud)

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

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

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