オブジェクトライブラリ

更新日:

用語解説

オブジェクトライブラリは、ソースコードをコンパイル又はアセンブルして得た再配置可能なオブジェクトモジュールを、再利用できるよう一つにまとめたライブラリです。静的ライブラリの.aや.libが代表例で、リンカへの入力になります。

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

  • 各モジュールには機械語、外部シンボル、再配置情報などがあり、リンカは未解決シンボルを満たすために必要なモジュールを取り出して結合します。

  • 静的リンクでは選択されたコードが実行ファイルへ組み込まれるため単独で配布しやすい一方、複数実行ファイルで同じコードが重複し、更新時は再リンクが必要です。

  • CPUアーキテクチャ、OS、ABI、呼出し規約、コンパイラ設定が合わなければリンク又は実行できません。ソースがないため通常は利用側で機械語を再生成できません。

  • Windowsのインポートライブラリも.libを使う場合がありますが、DLL本体のコードを静的に含むのではなく、DLLの公開シンボルへ結び付ける情報を持つ点に注意します。

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

『翻訳済みだが、まだリンカで結合する部品』『外部シンボルと再配置情報を持つ』が手掛かりです。コンパイル前のソースライブラリ、ローダが実行時に扱うロードライブラリと区別します。

例: main.oが参照するcalc関数をlibmath.aからリンカが取り出し、アドレスを再配置して一つの実行ファイルを生成します。

音声で聞く

同じ分野の用語