実行ファイルを生成する場合、コンパイラはコンパイル・フェーズとリンクフェーズを実行します。コンパイラを起動すると、ソースファイル名の拡張子とコマンドラインで指定したコンパイル・オプションを基にして、どのコンパイル・フェーズを実行するかをコンパイラ・ドライバが判断します。
コンパイラは、オブジェクト・ファイルと認識できないファイル名をリンカに渡します。次に、リンカは、そのファイルがオブジェクト・ファイル (.o) なのかライブラリ (.a) なのかを判断します。コンパイラ・ドライバは、どの種類の入力ファイルも正しく処理できるため、どのコンパイル・フェーズを起動するときにも使用できます。
コンパイラとシステム専用のプログラミング支援ツールの関係を下図に示します。