web-dev-qa-db-ja.com

シンボルルックアップエラー:./ executeableName:未定義のシンボル:_ZN18QXmlDefaultHandlerC2Ev

Ubuntu 12x64用にコンパイルされたLinuxMint 16x64で実行可能ファイルを実行しようとしています。実行可能ファイルは、実行時にQt5.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"

欠落している依存関係を検索しても結果が得られません。すべての動的依存関係が見つかったようですが、上記の未定義のシンボルエラーが引き続き発生します。

考え?

9
Daniel Arnett

クイックヘルプ:

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

したがって、QXmlDefaultHandlerのコンストラクターはありません。ここで見つけることができるのは、少なくともQt-4.8とQt-5.3にこのライブラリが含まれていることです。

実際に実行されているQtライブラリと、実行可能ファイルがコンパイルされたライブラリとの間には、ある種の非互換性があると思います。私の提案は、その実行可能ファイルをソースから再コンパイルすることでしたしかしあなたのミントで。

Ubuntuからソースパッケージを移植するのが少し難しいことは不可能ではありません。この場合、単純なアップストリームソースの再コンパイル(またはバイナリダウンロードがある場合)をお勧めします。

25
user259412

そのようなMintでUbuntuバイナリを実行することはできません。バイナリは通常、ディストリビューション間でバイナリ互換ではありません。ミントビルドを見つけることができますか?そうでない場合は、自分で作成する必要があります。

3