-->

symbol lookup error: ./executableName: undefined s

2020-06-16 02:27发布

问题:

I am trying to run an executable on Linux Mint 16 x64 that was compiled for Ubuntu 12 x64. The executable uses Qt 5.1.1 dynamically during runtime. I get the error:

loaded the dummy plugin 
loaded the Linux plugin 
updating server status 
./executableName: symbol lookup error: ./executableName: undefined symbol: _ZN18QXmlDefaultHandlerC2Ev

When I run

ldd executableName | grep "not found"

searching for missing dependencies I get no result; all dynamic dependencies seem to be found, but the undefined symbol error above persists.

Thoughts?

回答1:

A quick help:

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

Thus, you don't have a constructor for QXmlDefaultHandler. Googling for that we can found here, that at least Qt-4.8 and Qt-5.3 contains this library.

I think, there is some type of incompatibility between your actual running Qt library and between for which the executable was compiled for. My suggestion were to recompile that executable from source, but on your mint.

It is not impossible, that porting the source package from ubuntu will be a little bit hard for you, in this case I suggest a simple upstream source recompilation (or even binary download, if there is one).



回答2:

You can't run Ubuntu binaries on Mint like that; binaries are generally not binary-compatible between distributions. Can you find a Mint build? If not, you'll have to build it yourself.