2016-12-09 10 views
0

私のLinux Mintにはプログラム、実行可能ファイルがあります。 端末iのlddを使用すると、この実行可能ファイルに依存することができます。 lddファイル 別のシステムでプログラムを移動すると、実行されません。プログラムとインストールライブラリの依存関係

LDDファイルは何かなどを与える...

linux-vdso.so.1 => (0x00007ffc2a36d000) 
libwx_gtk2u_stc-3.0.so.0 => /usr/lib/x86_64-linux-gnu/libwx_gtk2u_stc-3.0.so.0 (0x00007f2919d55000) 
libwx_gtk2u_adv-3.0.so.0 => /usr/lib/x86_64-linux-gnu/libwx_gtk2u_adv-3.0.so.0 (0x00007f291996f000) 
libwx_gtk2u_core-3.0.so.0 => /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0 (0x00007f29190f5000) 
libwx_baseu-3.0.so.0 => /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0 (0x00007f2918c63000) 
libsqlite3.so.0 => /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 (0x00007f291898e000) 

...............

私はすべてのことのライブラリを知っていて、それが必要とするだけでインストールできますか

他のシステムに実行する。

objdumpを使用する-p/path/to/program | grepが必要です私は必要なlibsだけを得ることができますか?

ありがとうございます!

答えて

0

lddの出力によれば、システムにインストールされているすべてのライブラリ依存関係があります。

他のシステムで実行されない理由は、これらのライブラリのリンクテーブルの違いによる可能性が高いため、プログラムはそのアドレスで検索しているシンボルを見つけることができません。

単純な解決策として、新しいマシンでプログラムを再コンパイルすることをお勧めします。

+0

ありがとうございます。プログラムを他のシステムに移動し、多くのlibsをインストールすると、実行されます。しかし、このOSは、白内障のマシンです。プログラムが栄養士に送る必要があるとき、それは走らなければなりません。私が歴史を追跡しなかった場合、私は以前にOSで何をしたかを知る必要がありますか?このプログラムを実行するには、OSにインストールする必要のあるwhitchライブラリを知る方法が必要です。 –

+0

上記のように、必要なlibsをlddでチェックすることができます。申し訳ありませんが、私はあなたの他の質問を理解していませんでした。 –

+0

また、「プログラムが実行されない」ことを明確にしていただけませんでしたか?違う理由が原因かもしれません。 –

関連する問題