===== Compilación con GCC: pasos y comandos =====
==== Compilación paso a paso (por línea de comandos) ====
1. **Preprocesado:**
$ cpp programa.c > programa.pp
Se genera el archivo en código __fuente preprocesado__ ''programa.pp''
2. **Compilación** (traducción a ensamblador):
$ gcc -S programa.c
Se genera el archivo en código __ensamblador__ ''programa.s''
3. **Ensamblado** (traducción a código máquina/objeto):
$ as -o programa.o programa.s
Se genera el archivo en código máquina ''programa.o''
4. **Enlazado**:
$ ld -o programa programa.o -lc
Se genera el archivo ejecutable ''programa''
==== Compilación en un solo paso (por línea de comandos) ====
$ gcc -o programa programa.c
Se genera el ejecutable ''programa'' \\
**O**
$ cc -o programa programa.c
Se genera el ejecutable ''programa''
Se asume el compilador por defecto = gcc\\
**O**
$ gcc programa.c
Se genera el ejecutable ''a.out''\\
**O**
$ make programa
Se genera el ejecutable ''programa'' si existe en ese directorio el archivo fuente ''programa.c''
==== Ejecución (por línea de comandos)====
$ ./programa
Si nos encontramos en el directorio donde existe ese archivo ''programa'' con atributos y permisos de ejecución\\
**O**
$ programa
Si existe ese archivo ''programa'' en alguna de las rutas de búsqueda definida en ''$PATH'' con atributos y permisos de ejecución\\
**O**
$ /ruta/de/programa
==== Compilación con opciones de depuración ====
$ gcc -g -o programa programa.c
Se genera el mismo ejecutable ''programa'' que incluye información adicional para su depuración p.ej. con la herramienta //**gdb**//
==== Compilación con librería PThread ====
$ gcc -o programa fuente1.c fuente2.c -lpthread
Se genera el ejecutable ''programa'' a partir de dos archivos fuente enlazado con la librería ''libpthread.so''
==== Compilación con funciones matemáticas ====
$ gcc -o programa fuente.c -lm
Se genera el ejecutable ''programa'' a partir del archivo fuente enlazado con la librería ''libm.so''