gcc
and clang
are both known to be compiler drivers. As such, the gcc
executable does not compile anything itself. Rather, it calls the compiler (cc1
), assembler (as
) and linker (ld
) with the right flags as needed.
Is this setup true also for the Microsoft C compiler, cl.exe
? Is there actually some other executable that does the compilation? I assume that at least the assembling and linking are done by separate executables, since I know that ml.exe
(known as MASM) and link.exe
exist as separate executables, so cl.exe
probably calls them.
clang
process simply callsclang
. It does not need to be a separate binary, but there is a reason to run phases in separate processes, for a better error recovery. – SK-logic Mar 04 '14 at 21:20