/ / OS Xには2つのリンカーがありますか?静的なものと動的なもの-macos、リンカー、ld、動的リンク、dyld

OS Xにはリンカーが2つありますか? 1つは静的でもう1つは動的ですか? - macos、リンカー、ld、ダイナミックリンク、dyld

問題は、Mac OS Xにはdyld(動的リンカーを理解しているように)があるが、単純なリンカーld(静的リンカーを理解しているように)もあることを発見したことです。

問題は、本当にそうですか? 2つのリンカー? 1つの静的および1つの動的?

なぜ2つ持つことにしたのですか?Linuxには、静的リンクと動的リンクの両方を行うリンカー(ld)が1つしかありません。

回答:

回答№1は4

「リンク」の意味を誤解しています。または、別の方法を考えて、2つの意味があることに気付いていません。

役立つ場合は、考えてください dyld ダイナミックとして ローダ 「リンカー」ではなく。 dyld は、実行可能ファイルによって参照される動的ライブラリをプロセスのアドレス空間にロードするプログラムです。シンボル参照の解決が必要なため、リンクも必要です。

あなたは決して呼び出さない dyld ビルド手順の一部として。あなたはいつも使う ld または、より一般的には、プログラムをリンクするようコンパイラーに依頼し、それを呼び出します ld あなたに代わって。 dyld 実行時にのみ使用されます。

Linuxにはこの区別がないと断言すると、あなたは間違っています。 Linuxにはダイナミックローダーがあり、 ld.so、静的リンカーとは異なり、 ld.