Ejemplo práctico de las fases de compilación en un lenguaje de programación

1. Compilación

En Linux llamamos directamente a gcc (-W y –Wall permiten mostrar más mensajes para verificar si el código es “limpio”, -o ejemplo.exe indica que el ejecutable que será creado debe llamarse ejemplo.exe):

gcc – W – Wall –o ejemplo.exe ejemplo.c

Implícitamente el compilador hace tres etapas (preprocesado, compilación y enlazado).

1) El preprocesado/*Todo lo que es definido por , incluyendo printf() */

int main(){
printf(“ejemplo!\n»);
return 0;
}
———————————————————————————-
2) Compilación

Encuentra sin problemas printf ya que éste es declarado en

3) Enlazado
Encuentra sin problemas printf en el binario de la lib c. También lo

podemos verificar bajo linux con ldd:
ldd ejemplo.exe
Lo que da:
linux-gate.so.1 => (0xbtf2b000)
libc.so.6 => /lib/i686/cmov/livc.so.6 (0xb7dbb000)
/lib/ld-linux.so.2 (0xb7f2c000)

– En la segunda línea podemos ver que utiliza la lib c.

Luego crea ejemplo.exe

Por otra parte comprobamos que no hay error ni warning.

———————————————————————————

2. Ejecución

Tan solo queda ejecutarlo:

./ejemplo.exe

Lo que da como resultado:
——————————————————————————–
ejemplo !
——————————————————————————–

Fuente: Apuntes de Informática VII de la FCA de la UNAM