Symbol Lookup Error: ./Executablename: Undefined Symbol: _Zn18Qxmldefaulthandlerc2Ev

symbol lookup error: ./executableName: undefined symbol: _ZN18QXmlDefaultHandlerC2Ev

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).

Is there a way to scan built ARM libraries for functions in linux?

The nm tool can scan for the symbols of an induvidual library.

Symbols used for dynamic linking are in a different table as the symbols used only for compilation, so shared lib exports/imports can be scanned by the nm --dynamic flag.

All the symbols have also a single-byte type identifier, for example U means the symbols which are used by the library and T for the ones provided by it.

In the case of C++, there is also the c++filt tool to convert the cryptic C++ method names to simple ascii strings (related answer).

All of them is suited best in the ordinary command line scripting environment. For example, you can check for the Cica::Cica() constructor in all the directory structure of the PWD by this simple bash script:

for l in $(find -name "*.so*")
do
echo "$l"
nm --dynamic "$l"|c++filt|grep -F Cica::Cica
done

Is there a way to scan built ARM libraries for functions in linux?

The nm tool can scan for the symbols of an induvidual library.

Symbols used for dynamic linking are in a different table as the symbols used only for compilation, so shared lib exports/imports can be scanned by the nm --dynamic flag.

All the symbols have also a single-byte type identifier, for example U means the symbols which are used by the library and T for the ones provided by it.

In the case of C++, there is also the c++filt tool to convert the cryptic C++ method names to simple ascii strings (related answer).

All of them is suited best in the ordinary command line scripting environment. For example, you can check for the Cica::Cica() constructor in all the directory structure of the PWD by this simple bash script:

for l in $(find -name "*.so*")
do
echo "$l"
nm --dynamic "$l"|c++filt|grep -F Cica::Cica
done


Related Topics



Leave a reply



Submit