リンカ
オブジェクトファイルを連結し、未解決の名前を解決し、実行ファイルを作成する
オブジェクトファイルやライブラリを結合して、ターゲット環境のABIに準拠した実行可能ファイル(バイナリ)を生成する
分割コンパイルによって、コンパイル時はたとえ中身がなくても関数の宣言さえあればコンパイルできるが、リンク時には実際に中身も見るので、中身が用意されていないとエラーになる
複数のオブジェクトファイルに同じ関数名や変数名があるときもリンクエラー
もともとはロードとリンクは同時に行うものだった
が、その昔(1960~1970年代)のプログラムの巨大化によりリンクの処理がおそすぎて使えなくなった
なので、ロードとリンクを別々に分けることにした
この2つのうちの遅い方がリンク処理でそれを個別にやるやつがリンカとして切り出された
参考

p.113
実行時ルーチンを必要なときに呼び出す
自作