「ld」と「ld.so」の違いは?


8

どちらも「リンカー」と呼ばれ、バイナリーをリンクするために使用されますが、それらが互いにどのように異なるのか本当にわかりません。誰か私にそれらの違いを教えてもらえますか?

回答:


8

技術的になりすぎないでください:どちらも「リンカー」です。つまり、コンパイルされたコードの一部を別のコンパイルされたコードと結合/ロードするツールです。

ldは静的リンカーld.soですが、動的リンカーです。

文字soは、「共有オブジェクト」の略であり、通常、共有ライブラリのファイル名サフィックスとして表示されます。つまり、プログラムに動的にリンクされる可能性があるライブラリ(1つのライブラリが複数のプログラム間で「共有」される) 。対照的に、静的ライブラリには、.a「アーカイブ」(arユーティリティによって作成)のファイル名サフィックスが付いていることがよくあります。

静的リンカーは、コンパイル時にプログラムまたはライブラリをリンクします。通常は、コンパイルプロセスの最後のステップとして、バイナリ実行可能ファイルまたはライブラリを作成します。バイナリ実行可能ファイルの場合、それはすべてのライブラリがバイナリ自体にロードされた静的バイナリであるか、一部のライブラリのみが静的にリンクされた動的にリンクされたバイナリである可能性があります。

動的リンカーは、コンパイル時に動的にリンクされたライブラリーを、実行時にプロセスのアドレス空間にロードします。

マニュアルを参照してください。ldそしてld.so、あなたのシステム上の。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.