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