2016-07-22 6 views
0

私は動的リンクを使用してMarbleプラグインを使用してQt5アプリケーションをデプロイしようとしています。 Qt5のlibs、プラットフォームのプラグイン、大理石のlibmarblewidget-qt5.so.22を実行可能なアプリケーションに入れました。このアプリケーションは大理石のUbuntuにインストールされています。今私は大理石をインストールせずにUbuntuでアプリケーションを実行しようとしています。私はhttp://doc.qt.io/qt-5/linux-deployment.htmlの起動スクリプトを使ってアプリケーションを起動しています。私はUbuntu 16.04 32ビットで作業しています。私は(端末から)アプリケーションの起動スクリプトを実行するとエラー:マップテーマファイルが存在しません...(Qt5アプリケーションとサードパーティのライブラリMarble)

私は、このエラーメッセージが表示されます:

Map theme file does not exist: "" 
Ignoring to load the following file since it doesn't look like a valid Marble plugin: "/boot/initrd.img-4.4.0-21-generic" 
Reason: "'/boot/initrd.img-4.4.0-21-generic' is not an ELF object" 
Ignoring to load the following file since it doesn't look like a valid Marble plugin: "/boot/vmlinuz-4.4.0-21-generic" 
Reason: "'/boot/vmlinuz-4.4.0-21-generic' is not an ELF object" 
Segmentation fault (core dumped) 

私は何かが足りない、私はちょうどlibmarblewidget-qt5.so.22以上の何かを持っている必要があります?

答えて

0

大理石は正常に動作するにはlibmarblewidget-qt5.so以上必要です。少なくとも表示したい地図テーマのデータと、通常はプラグインも必要です。 Marbleをコンパイルした後、インストールフォルダ(CMAKE_INSTALL_PREFIX)を見てください。たとえば、プラグインが見つかります。 lib64/marble/およびデータはshare/marble/dataです。

プラグインとデータへのパスはlibmarblewidget-qt5.soにコンパイルされますが、実行時に変更できます。これを行うには、MarbleDirs::setMarbleDataPath()MarbleDirs::setMarblePluginPath()を使用してください。要するに

、あなたは、すべてまたは一部のデータお好み

  • コールの別のフォルダにお好み
  • コールMarbleDirs::setMarblePluginPath("/your/plugins/install/folder");
  • 船のフォルダに

    • 船の全部または一部のプラグインを持っていますMarbleDirs::setMarbleDataPath("/your/data/install/folder");

    出力(セグメンテーションの可能性もあります)は、コンパイルされたプラグインパスがターゲットシステムに存在しないため、Marbleのプラグインマネージャーは/を検索し、見つかったファイルをロードしようとします。

  • +0

    ありがとうございます、アプリケーションは今すぐうまく動作します。 – maltja

    関連する問題