リンカ

更新日:

用語解説

リンカ(linkage editor)は、コンパイラやアセンブラが生成した複数の目的モジュールとライブラリを結合し、外部記号の参照解決とアドレス再配置を行って、実行可能ファイルやロードモジュールを作るプログラムです。

■ 試験で押さえるポイント

  • あるモジュールのcall fooという未解決参照を、別モジュールが定義するfooのアドレスへ結び付けます。定義不足や同名の重複定義はリンクエラーになります。

  • 再配置では、別々に作られたコード・データ領域の配置を決め、その配置に応じて命令中のアドレスや参照情報を補正します。

  • 静的リンクは必要なライブラリコードを実行ファイルへ取り込み、動的リンクは共有ライブラリを実行開始時又は実行中に結び付けます。

  • コンパイラはソースを目的コードへ翻訳し、リンカは目的コード同士を結合し、ローダは完成したプログラムを主記憶へ配置します。

■ 選択肢での判断ポイント

キーワードは「外部参照の解決」「複数目的モジュール・ライブラリの結合」「再配置」です。ソース文法解析や主記憶への読込みを選ばないようにします。

例: main.oがcalcを呼び、math.oがcalcを定義しているとき、リンカは両者を結合し、呼出し先アドレスを確定します。calcの定義がどこにもなければ未解決外部記号エラーです。

音声で聞く

同じ分野の用語