ldd /full /path /conmmand
1、最初のlddは実行可能プログラムではなく、単にシェルスクリプトです。
2、lddは実行可能モジュールの依存関係を表示できます。原則として、LD_TRACE_LOADED_OBJECTS、LD_WARN、LD_BIND_NOW、LD_LIBRARY_VERSION、LD_VERBOSEなどの一連の環境変数を設定します。 LD_TRACE_LOADED_OBJECTS環境変数が空でない場合、実行可能プログラムは実行中にモジュールの依存関係のみを表示し、プログラムは実際には実行されません。それ以外の場合は、次のようにシェル端末でテストできます。
(1)export LD_TRACE_LOADED_OBJECTS = 1
(2)lsなどのプログラムを実行します。実行結果
3、lddは実行可能モジュールの依存関係の動作原理を示しており、その本質はld-linux.so(elf動的ライブラリローダー)によって達成されます。私たちは、ld-linux.soモジュールが実行可能モジュールプログラムの前に動作して制御を得ることを知っているので、上記の環境変数が設定されると、ld-linux.soは実行可能モジュールの依存関係を表示することを選択します。
4、実際には以下のようにld-linux.soモジュールを直接実行することができます。/lib/ld-linux.so.2 --list program(これはldd programと同等です)ldd command usage (lddからの抜粋--help)名前ldd - 共有ライブラリの依存関係の印刷
概要ldd [オプション] ...ファイル...
説明lddの出力各プログラムに必要な共有ライブラリ、またはコマンドラインで指定された共有ライブラリ。
オプション
--version
lddのバージョン番号を印刷する
-v --verbose
すべての情報を印刷するたとえば、シンボルのバージョン情報を含めることができます。
-d --data-relocs
シンボルの再展開を実行し、不足しているターゲットオブジェクトを報告する(ELF形式にのみ適用可能) -r --function-relocs
ターゲットオブジェクトと関数を再デプロイし、見つからないターゲットオブジェクトと関数を報告します(ELFフォーマットのみ)
--help使用法
注意:
標準バージョンのlddはglibc2で提供されています。 Libc5は以前は古いバージョンで利用可能でしたが、まだいくつかのシステムに存在します。 longオプションはlibc5バージョンではサポートされていません。一方、glibc2バージョンは-Vオプションをサポートしておらず、同等の--versionオプションのみをサポートしています。
コマンドラインで与えられたライブラリ名が '/'を含む場合、このプログラムのlibc5バージョンはそれをライブラリ名として使います;そうでなければそれは標準的な場所でライブラリを検索します。カレントディレクトリで "./"の接頭辞を付けて共有ライブラリを実行します。
エラー:
lddはa.out形式の共有ライブラリでは動作できません。
lddは、lddコンパイラがリリースされる前に作成された非常に古いa.outプログラムでは動作しません。このタイプのプログラムでlddを使用すると、プログラムはargc = 0を実行しようとしますが、結果は予測不能です。
この記事には新しい概念はなく、コマンドラインツールを使用して以前に行ったことを繰り返すだけで、前提条件はありません。プロセスは、我々は以前の記事を議論しました。 ステップ1:ストレージプールの設定
私は多くの人々のようにLinuxの新人ですが、それはこれに非常に興味を持っています。 6.4 VMware仮想マシンをインストールした後は、すべてうまくいきました。 そこで、仮想マシンのcentosシ
LinuxでTomcatを最初に使用した場合、ROOT以外の権限で作成された新しく作成されたユーザーは使用されませんが、このユーザーIDで起動する状況が発生する可能性があります。プロジェクトの終了後、
Linuxでlive55を実行すると、次のように表示されます。no ip:ip is 0.0.0.0 live555は、ローカルIPアドレスとネットワークインターフェースを知らないローカルポートはU