コンパイラ
C言語のプログラムから実行ファイルができるまでの一般的な流れとして正しいものはどれか。
- Aリンク → コンパイル → アセンブル
- Bアセンブル → リンク → コンパイル
- Cコンパイル → アセンブル → リンク
答えと解説を見る
正解:C. コンパイル → アセンブル → リンク
C言語のソースファイルは、まずコンパイラで機械語に近いアセンブリ言語(または直接オブジェクトファイル)に変換され、アセンブラで機械語のオブジェクトファイルになります。最後にリンカが複数のオブジェクトファイルやライブラリをまとめ、関数や変数のアドレスを決めて実行ファイルを作ります。オブジェクトファイルの段階では、ほかのファイルにある関数のアドレスはまだ決まっていません。ほかの順番では、前の段階の出力が次の段階の入力になりません。
- A. リンクは最後の段階です。
- B. アセンブルの前にコンパイルが必要です。
- C. 正しい。コンパイル、アセンブル、リンクの順です。