===== 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''