通常、開発者や運用保守担当者がソフトウェアの実行時に依存ライブラリが見つからないという問題に対処する場合、strace などのいくつかのツールを使用して起動時の読み込みプロセスを追跡できます。 、gdb 待ちます。さらに、ld および ldd コマンドを使用して、依存ライブラリの状況を分析し、問題をより迅速に解決することもできます。これらのツールは、欠落している依存関係ライブラリを特定し、ユーザーがソフトウェアの実行時の問題を解決するために適切なアクションを取れるようにガイドするのに役立ちます。
ここでは、ダイナミック ライブラリ ファイル libmpi_usempif80.so と、それが問題の原因として依存している他のダイナミック ライブラリを分析します。
最初に、mpi_usempif80 ライブラリが依存する他のライブラリの分析に ld コマンドがどのように役立つかを紹介します。 mpi_usempif80 ライブラリがロードされるとき、現在のシステム内のどのパスがこれらのライブラリを検索しますか?
#ld -lmpi_usempif08 –verbose
リーリー上記の情報は非常に長く、多くの貴重な情報が含まれています。主要な部分だけを見たい場合は、主要な内容を保持し、出力情報の要約バージョンを作成します:
#ld -lmpi_usempif08 –verbose
リーリーさらに、grep を使用してフィルタリングし、mpi_usempif08 によって実際に検出されたライブラリに関する情報のみを表示できます。
#ld -lmpi_usempif08 –verbose | grep が見つかりました
リーリーそして、ldd は ld とは異なります。 ldd は、Linux ランタイム ライブラリの依存関係を分析するために使用されます。ld は、C/C/Fortran およびその他の言語コードから実行可能ファイルを生成するリンク フェーズでよく使用される実行可能ファイル リンカーです。
ldd を使用して、同じ動的ライブラリが依存する他のライブラリを分析する方法を見てみましょう:
#ldd/usr/lib/x86_64-linux-gnu/libmpi_usempif08.so.40.30.0
リーリーここでの順序は、ld -lmpi_usempif08 –verbose | grep found の結果と一致しています。
以上が知識の向上: Linux の ld と ldd を併用すると、実行時にライブラリ ファイルのロードに失敗する理由を分析するのに役立ちます。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。