質問: 実行可能ファイルは実行時に共有オブジェクトをどこで探しますか? リンク/コンパイル時にインクルード共有オブジェクトを定義する方法を理解しています。ただし、実行時に実行可能ファイルが共有オブジェクト(*.soライブラリ)をどのように検索するのかはまだ疑問です。たとえば、私のアプリa.outはlib.soライブラリで定義された関数を呼び出します。コンパイル後、lib.soを$homeの新しいディレクトリに移動します。a.outにそこを探しに行くにはどうすればよいですか?
回答: ここでの答えはldconfigだと思います。 ldconfigは、コマンドラインで指定されたディレクトリ、ファイル/etc/ld.so.conf、および信頼されたディレクトリ(/ libおよび/ usr/lib)にある最新の共有ライブラリへの必要なリンクとキャッシュを作成します。キャッシュは、実行時リンカーld.soまたはld-linux.soによって使用されます。 ldconfigは、リンクを更新する必要があるバージョンを決定するときに、ライブラリのヘッダーとファイル名を確認します。 http://linux.die.net/man/8/ldconfig