
どちらも「リンカー」と呼ばれ、バイナリを接続するために使用されますが、実際にどのように異なるかはわかりません。誰でも違いを教えてもらえますか?
答え1
あまり技術的ではなく、両方とも「リンカー」です。つまり、コンパイルされたコードの一部をコンパイルされたコードの別の部分に結合/ロードするツールです。
ld
静的リンカーld.so
ですが。
私はその文字がso
「共有オブジェクト」の略であると思います。通常、共有ライブラリ、つまりプログラムに動的にリンクできるライブラリ(ライブラリは複数のプログラム間で「共有」されます)のファイル名サフィックスと考えられます。対照的に、静的ライブラリには通常、.a
「アーカイブ」(ユーティリティで生成されるar
)を意味するファイル名サフィックスがあります。
静的リンカーは通常、コンパイル時に最終的にプログラムまたはライブラリをコンパイルプロセスの最後のステップとしてリンクし、バイナリ実行可能ファイルまたはライブラリを作成します。バイナリ実行可能ファイルの場合は、静的バイナリにすることができます。みんなバイナリ自体にロードされたライブラリーであるか、いくつかの静的にリンクされたライブラリーを持つ動的にリンクされたバイナリのいずれかです。
動的リンカーは、実行時にコンパイル時に動的にリンクされたライブラリをプロセスのアドレス空間にロードします。
ld
ld.so
システムのマニュアルを参照してください。