コンパイルされたC ++プログラムの依存関係を見つける

コンパイルされたC ++プログラムの依存関係を見つける

Ubuntu 13.10(32ビット)では、Qt Creatorを使用してC ++プログラムを作成してコンパイルしました。 Ubuntu 13.10(64ビット)を新しくインストールし、コンパイルされたプログラムを実行してみました。しかし、実行されません。

問題は依存関係にあると思います。必要な依存関係をどのように見つけますか(=その名前とバージョンがわかりますか?)

答え1

やや粗雑ですが、あなたの場合はlddコマンドが適していると思います。

lddは、実行可能ファイルの動的にロードされたライブラリの依存関係を一覧表示するために使用されます。 ldd が必要なライブラリが見つからない場合、ライブラリは「見つかりません」です。

たとえば、私が見つけた古いgqrxバイナリを使用してlddを実行すると、次のような出力が表示されます。

linux-gate.so.1 (0xb7fff000)
libgnuradio-audio.so.3.6.1 => not found
libgnuradio-osmosdr.so.0 => not found
libgnuradio-core.so.3.6.1 => not found
libgruel.so.3.6.1 => not found
libfftw3f.so.3 => /usr/lib/i386-linux-gnu/libfftw3f.so.3 (0x41b5d000)
libusb-1.0.so.0 => /lib/i386-linux-gnu/libusb-1.0.so.0 (0x422ee000)
libQtGui.so.4 => /usr/lib/i386-linux-gnu/libQtGui.so.4 (0x42e47000)
libQtCore.so.4 => /usr/lib/i386-linux-gnu/libQtCore.so.4 (0xb7cde000)
libpthread.so.0 => /lib/i386-linux-gnu/i686/cmov/libpthread.so.0 (0x411dc000)

ご覧のとおり、libgnuradioライブラリをアップグレードして以前のバージョンを削除しました。 lddは、見つからないライブラリを「見つかりません」とリストします。

頑張ってください!

関連情報