問題は、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
.