2017-10-11 6 views
0

こんにちは、Linux上でwxWidgets GUIアプリケーションをビルドすると、ビルドはうまくいきます。私もそれを実行することができ、期待どおりに動作します。私は別のUbuntuコンピュータにバイナリをコピーし、それを実行しようとすると、私はこのエラーを取得:Wxwidgetsが別のコンピュータ上で実行中のバイナリを実行する

./app2: error while loading shared libraries: libwx_baseu_unofficial-3.1.so.0: cannot open shared object file: No such file or directory 

を、私はまだ問題を得る渡っLIBをコピーする場合でも。なぜそれは外部ライブラリに依存しているのですが、他のコンピュータにこのライブラリのインストールを要求しないように、この問題をどのように解決することができますか。私は静的にそれをリンクしようとすることができると思うが、他の人はあなたがこれをしないことをお勧めします。

はあなたが上にあなたのバイナリをコピーし、任意のマシン上で全体wxWidgetsのランタイム/共有ライブラリをインストールする必要が ダン

答えて

0

、ありがとうございます。これはaptitudeの使用の全ポイントです。各バイナリパッケージには、それに沿ってインストールされる依存関係のリストがあります。

これを解決するには、バイナリを静的にリンクする必要があります。あなたは現在、外部ライブラリに注意しているように、共有リンクを使用しています。 ".so"は共有オブジェクトを意味します。静的なアーカイブライブラリにリンクする必要があります。通常、 ".a"で終わります。通常、aptitudeが提供する開発パッケージはこれらを提供していないので、おそらくwxWidgetsをコンパイルして提供する必要があります。 wxWidgetsのダウンストリーム依存関係もすべて静的にリンクしてコンパイルするようにしてください。これは静的リンクの主な欠点です。

Holy Build Boxのようなものも見ることができます。

+0

ご回答いただきありがとうございます。私は.debファイルでwxwidgetsを問題の解決に必要な依存関係として要求することができますか? –

+0

コンパイルしたバージョンが依存関係チェックでも定義されていることを確認してください。 –

+0

私はwxWidgetsのカスタムコンパイル版を使ってリンクを構築しました。変更されていないが、それが探しているライブラリは "非公式"です。私は "非公式"ライブラリを別のUbuntu PCにコピーしましたが、システムはまだライブラリが見つからないと言っていますか? –

関連する問題