リンカ・ローダと実行形式
リンカの主な役割として正しいものはどれか。
- A複数のオブジェクトファイルやライブラリを結合し、名前を番地に結びつけて実行ファイルを作る
- Bソースコードの文法の誤りを見つけて知らせる
- C実行中のプログラムのメモリを、使い終わったら自動で解放する
答えと解説を見る
正解:A. 複数のオブジェクトファイルやライブラリを結合し、名前を番地に結びつけて実行ファイルを作る
リンカは、各オブジェクトファイルで参照されている名前(シンボル)を、どこかで定義されている実体と対応づけ(シンボル解決)、各ファイルのコードとデータを並べて最終的な番地を決め、命令の中の仮の番地を正しい値に書き換え(再配置)ます。必要ならライブラリから関数を取り出して加えます。こうして、OSが読み込んで実行できる実行ファイルができあがります。
- A. 正しい。シンボル解決と再配置を行います。
- B. 文法の誤りはコンパイラが見つけます。
- C. それはガベージコレクタの仕事です。