Sistemas Operativos Práctica 2 Sesión 1 Curso 2005/2006 COMPILADOR GCC ● ● ● El gcc es el compilador por excelencia con licencia pública GNU. Es un compilador flexible y riguroso con el estándar ansi C. Proporcionamos al compilador un programa fuente y nos devuelve un archivo binario compilado para nuestra arquitectura. Fases de compilación a partir del código fuente: – Preprocesador (cpp) C completo – Compilador (cc1) ensamblador Programa – Ensamblador (as) Código objeto – Enlazador (o linkador) Sistemas operativos curso 2005/2006 en Ejecutable (a.out) 2 COMPILADOR GCC ● ● Si ejecutamos gcc realiza todas las fases en una, con la opción -v nos informará en pantalla de cada fase. Sintaxis de la orden – ● ● ● $ gcc [options] file.... Ejemplos hola.c Entrada.c Error. Fallo al analizar el código C que impide la generación de un ejecutable final. Warning. Advertencia del copilador al analizar el código C que no impide la generación de un ejecutable. Opciones más comunes del gcc. – -o mediante esta opción podemos especificar el nombre del ejecutable $gcc hola.c -o hola Sistemas operativos curso 2005/2006 3 COMPILADOR GCC – -g incluye en el binario información necesaria para utilizar un depurador posteriormente. – -Wall No omite la detección de ningún warning. – -O <nivel> indica a gcc que utilice optimización en el código, posibles valores desde 0 a 3. Aumenta el tiempo de compilación. – -E solo realiza la fase de preprocesador, no compila, ni ensambla. – -S Preprocesa y compila, pero no ensambla ni enlaza – -c Preprocesa, compila y ensambla pero no enlaza. – -L <dir> Especifica un directorio adicional donde gcc debe buscar las librerías necesarias en el proceso de enlazado. – -l <library> Especifica el nombre de una librería adicional que deberá ser utilizada en el proceso de enlazado. Sistemas operativos curso 2005/2006 4 COMPILADOR GCC ● Para mas información man gcc Sistemas operativos curso 2005/2006 5 COMPILACIÓN ● Vamos a compilar el primer programa. # include <stdio.h> main() { printf(“hola, mundo\n”); } gcc hola.c -o hola Sistemas operativos curso 2005/2006 6 EJEMPLOS ● ● Transparencias de teoría Tema 2 – Sesion 1 – Contar los caracteres, líneas y palabras de la entrada – Contar dígitos, espacios en blanco y otros Transparencias de teoría Tema 2 – Sesión 2 – Imprimir la línea de entrada mas larga (versión normal) Sistemas operativos curso 2005/2006 7