GCC Realizado por Kepa Bengoetxea Kortazar GCC Bibliografa

  • Slides: 13
Download presentation
GCC Realizado por: Kepa Bengoetxea Kortazar

GCC Realizado por: Kepa Bengoetxea Kortazar

GCC Bibliografía: http: //gcc. gnu. org/onlinedocs/ Programación Linux de Kurt Wall

GCC Bibliografía: http: //gcc. gnu. org/onlinedocs/ Programación Linux de Kurt Wall

GCC: Instalación Para programar en C, y usar sus librerías, es necesario instalar ciertos

GCC: Instalación Para programar en C, y usar sus librerías, es necesario instalar ciertos paquetes: sudo apt-get install build-essential Esto instala las librerías necesarias: buildessential, dpkg-dev, g++-4. 1, libc 6 -dev, libstdc++6 -4. 1 -dev, linux-libc-dev

GCC: Instalación Además te sugiere los siguientes paquetes de Ayuda y Documentación: sudo aptitude

GCC: Instalación Además te sugiere los siguientes paquetes de Ayuda y Documentación: sudo aptitude install debian-keyring gcc-4. 2 -doc lib 64 stdc++6 glibc-doc manpages-dev libstdc++6 -4. 2 doc Para instalar el man de los comandos de usuario del sistema POSIX(Portable Operating System Interface uni. X): sudo apt-get install manpages-posix Nota: una familia de estándares de llamadas al sistema operativo definidos por el IEEE (Institute of Electrical and Electronics Engineers)

GCC Es un compilador de C, C++, Fortran, Java, Ada. . . esta en

GCC Es un compilador de C, C++, Fortran, Java, Ada. . . esta en la carpeta /usr/bin Realizado por GNU (creador fué Richard Stallman). Plataformas que soporta: x 86 de Intel, Power. PC, las Amiga. . . Compilador cruzado. Optimizador Ejm: gcc kaixo. c -o kaixo. exe

Gcc: lanzador de programas Código fuente. c Preprocesador: cpp Código preprocesado. i Compilador: cc

Gcc: lanzador de programas Código fuente. c Preprocesador: cpp Código preprocesado. i Compilador: cc Gcc Código ensamblador. s Ensamblador: as Código objeto. o+Biblioteca. a. so Editor de enlaces: ld Código ejecutable

GCC: Etapa preprocesador El preprocesador cpp expande macros o directivas: inserta los archivos #include

GCC: Etapa preprocesador El preprocesador cpp expande macros o directivas: inserta los archivos #include <stdio. h> Sustituye #define PI 3. 141593 o #define abs(i) (i)<0? -(i): (i) Se puede obtener código preprocesado utilizando la opción E: gcc -o kaixo. i -E kaixo. c O directamente: cpp kaixo. c kaixo. i donde. i es la extensión de código preprocesado

GCC: etapa compilador Compilador cc: traduce de lenguaje c a ensamblador(NO BINARIO) optimiza el

GCC: etapa compilador Compilador cc: traduce de lenguaje c a ensamblador(NO BINARIO) optimiza el código detecta errores Se puede obtener código ensamblado utilizando la opción S. Ejm: gcc -o kaixo. s -S kaixo. i O directamente: cc -o kaixo. s -S kaixo. i donde. s es la extensión de código ensamblado

GCC: etapa ensamblador Ensamblador as: as -o kaixo. s El ensamblado transforma el programa

GCC: etapa ensamblador Ensamblador as: as -o kaixo. s El ensamblado transforma el programa escrito en lenguaje ensamblador a código objeto (un archivo binario en lenguaje de máquina ejecutable por el procesador) Se encarga de enlazar la salida del compilador gnu con el enlazador. Se puede obtener código objeto utilizando la opción c: Ejm: gcc -o kaixo. o -c kaixo. s. o es la extensión de código objeto

GCC: etapa enlazador Enlazador ld: Las funciones de C/C++ incluídas en nuestro código, tal

GCC: etapa enlazador Enlazador ld: Las funciones de C/C++ incluídas en nuestro código, tal como printf() en el ejemplo, se encuentran ya compiladas y ensambladas en bibliotecas existentes en el sistema. Es preciso incorporar de algún modo el código binario de estas funciones a nuestro ejecutable. enlaza el código objeto, con posibles librerías produciéndose un ejecutable kaixo. exe Las librerias o bibliotecas tienen la extensión: . a o. so Ejm: gcc -o kaixo. exe kaixo. c prog 1. s prog 2. a

GCC: Opciones -o nombre_archivo determina el archivo de salida. -c compila sin linkear -v

GCC: Opciones -o nombre_archivo determina el archivo de salida. -c compila sin linkear -v modo verbose -g guarda información para la depuración: gdb - I <dir> le dice al gcc que añada un nuevo directorio de busqueda para los ficheros include o cabecera. -static evita que se enlace con bibliotecas dinámicas -L <dir> le dice al gcc que añada un nuevo directorio de busqueda para las librerias o bibliotecas

GCC: opciones -w evita los mensajes de warnings -wall exhibe todos los warnings -werror

GCC: opciones -w evita los mensajes de warnings -wall exhibe todos los warnings -werror convertir las warnings en error Optimización: -O 0 No optimiza -O Optimiza (Mayor v. ejecución y Meñor tamaño) -O 2 , -O 3

GCC: opciones Compiladores cruzados: Tipos de CPU: i 386, i 486, i 586, i

GCC: opciones Compiladores cruzados: Tipos de CPU: i 386, i 486, i 586, i 686, pentium-mmx, pentiumpro, pentium 2, pentium 3, pentium 4, k 6 -2, k 6 -3, athlon-tbird, athlon -4, athlon-xp and athlon-mp Ejm: gcc -mcpu=i 386 kaixo. c