Un compilador traduce un programa escrito en un lenguaje de programación de alto nivel a otro lenguaje, generalmente lenguaje de máquina, para que la computadora pueda ejecutarlo. El compilador más común para Linux es gcc, el cual puede usarse desde la línea de comandos o un entorno gráfico. La compilación involucra varias etapas: el programa fuente, el compilador, el programa objeto, el enlazador y el ejecutable final.