Le compilateur est en fait un driver qui appelle d'autres commandes pour créer un fichier exécutable a.out.
Les compilateurs C, fortran et pascal possèdent l'option -v qui affiche les phases par lesquelles le compilateur passe. Compiler main.c et func.c avec l'option -v produit la sortie suivante sur une station de travail HP 9000s700:
$ cc -Aa -v main.c func.c ----------------------- cc: CCOPTS is not set. main.c: /lib/cpp.ansi main.c /tmp/ctmAAAa09043 -D__hp9000s700 -D__hp9000s800\ -D__hppa -D__hpux -D__unix -D_PA_RISC1_1 cc: Entering Preprocessor. /lib/ccom /tmp/ctmAAAa09043 main.o -Oq00,al,ag,cn,Lm,sz,Ic,vo,lc\ ,mf,Po,es,rs,sp,in,pi,fa,pe,Rr,Fl! -Aa func.c: /lib/cpp.ansi func.c /tmp/ctmAAAa09043 -D__hp9000s700 -D__hp9000s800\ -D__hppa -D__hpux -D__unix -D_PA_RISC1_1 cc: Entering Preprocessor. /lib/ccom /tmp/ctmAAAa09043 func.o -Oq00,al,ag,cn,Lm,sz,Ic,vo,lc,mf\ ,Po,es,rs,sp,in,pi,fa,pe,Rr,Fl! -Aa cc: LPATH is /lib/pa1.1:/usr/lib/pa1.1:/lib:/usr/lib /bin/ld /lib/crt0.o -u main -Fb /usr/lib/uccom main.o func.o -lc cc: Entering Link editor.
Cet exemple montre que le driver cc appelle le préprocesseur (/lib/cpp) pour chaque fichier source, puis appelle le compilateur C (/lib/ccom) pour créer les fichiers objets. Enfin, le driver appelle l'éditeur de lien (/bin/ld) sur les fichiers objets créés par le compilateur ( main.o et func.o).