¿What happens when you type gcc main.c?

Adrian Felipe Vides Jimenez
2 min readSep 21, 2020

First of all we need to understand what we are typing, so let’s see.

“gcc” is the the GNU Compiler Collection and it includes front ends for C, C++, Objective-C, Fortran, Ada, Go, and D, as well as libraries for these languages

In the process of compiling are involved 4 steps: Preprocessing, Compiler, Assembler and Linking. And now let’s see what do these steps do:


In this step the directives are interpreted to the preprocessor. Here the compiler takes the source code and remove comments indicated by /**/ or #


In this step the file code is taken and turned it into assembly code, so the in the next step Assembler can read it


The assembler takes the assembly code and turned it into an object code (machine language) which is in binary.


In this final steps all code is linked together in a single executable file, which if there is no specified name, it will be called “a.out”.

This is a graphical explanation.

So now that you know what is gcc you may know what “gcc main.c” does.

Yeah, “gcc main.c” will compile (go trough all 4 steps) and create a new executable file with the code inside the file “main.c”

Before you go, if you want to name that new file you have to add <-o> and the name you want, for example:

If you want to know more about this you can check here and search more information.



Adrian Felipe Vides Jimenez

I'm a Software Developer passionate by programming, videogames and music. Nowadays studying at Holberton School