SlideShare una empresa de Scribd logo
1 de 7
TRABAJO EN GRUPALTRABAJO EN GRUPAL
INTEGRANTES:INTEGRANTES: Luis Duchitanga, Nixon Maza Luis Duchitanga, Nixon Maza
CURSO:CURSO:  6to Sistemas  6to Sistemas                  FECHA:FECHA:01/10/201301/10/2013
¿Que es un compilador?¿Que es un compilador?
Un compilador es un programa informático que traduce un programa
escrito en un lenguaje de programación a otro lenguaje de programación,
generando un programa equivalente que la máquina será capaz de
interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero
también puede ser un código intermedio (bytecode), o simplemente texto.
Este proceso de traducción se conoce como compilación.
Un compilador es un programa que permite traducir el código fuente de
un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior
(típicamente lenguaje de máquina). De esta manera un programador puede
diseñar un programa en un lenguaje mucho más cercano a como piensa
un ser humano, para luego compilarlo a un programa más manejable por
una computadora.
Como parte importante de este proceso de traducción, el compilador
informa a su usuario de la presencia de errores en el programa fuente.
Fases de la Compilacion.Fases de la Compilacion.
La primera fase consiste en escribir el código fuente en lenguaje C o C++ (archivos con
extensión .c y .h en C y .cpp y .hpp en C++). Luego se efectúa la compilación, por ejemplo con gcc
(en C) o g++ (en C++). La compilación se desarrolla en tres grandes fases.
1) El preprocesado
El compilador comienza por aplicar cada instrucción pasada al preprocesador (todas las líneas que
comienzan con #, entre estas las #define). Estas instrucciones son en realidad muy simples ya que
únicamente copian o eliminan secciones de código sin compilarlas.
Es en esta fase que las #define que se encuentran en un archivo fuente (.c o .cpp) o en un header
(.h o .hpp) son reemplazadas por código C/C+. Al final de esta etapa, no habrán instrucciones
comenzando por #.
2) La compilación
Luego, el compilador compila cada archivo fuente (.c y .cpp), es decir crea un archivo binario (.o)
para cada archivo fuente, excepto para el archivo conteniendo la función main. Esta fase
constituye la compilación propiamente dicha.
Estas dos primeras etapas son realizadas por cc cuando se utiliza gcc/g++.
3) El enlazado
Finalmente, el compilador une cada archivo .o con los archivos binarios de las librerías que son
utilizadas (archivos .a y .so bajo Linux, archivos .dll bajo Windows).
Especialmente, verifica que cada función llamada en el programa no esté solamente declarada
(esto es hecho durante la compilación) sino también implementada. También verifica que una
función no esté implementada en varios archivos .o.
Esta fase constituye la fase final para obtener un ejecutable (.exe bajo Windows, generalmente sin
extensión bajo Linux).
Compilador para Linux G++,GCC.Compilador para Linux G++,GCC.
G++Saltar a: navegación, búsquedaG++Saltar a: navegación, búsqueda
g++ es el alias tradicional de GNU C++, un conjunto gratuito deg++ es el alias tradicional de GNU C++, un conjunto gratuito de
compiladores de C++. Forma parte del GCC, GNU Compiler Collection (delcompiladores de C++. Forma parte del GCC, GNU Compiler Collection (del
inglés, colección de compiladores GNU).inglés, colección de compiladores GNU).
En sistemas operativos GNU, gcc es el comando usado para ejecutar elEn sistemas operativos GNU, gcc es el comando usado para ejecutar el
compilador de C, mientras que g++ ejecuta el compilador de C++.compilador de C, mientras que g++ ejecuta el compilador de C++.
GCC: es un compilador integrado del proyecto GNU para C, C++, ObjectiveGCC: es un compilador integrado del proyecto GNU para C, C++, Objective
C y Fortran; es capaz de recibir un programa fuente en cualquiera de estosC y Fortran; es capaz de recibir un programa fuente en cualquiera de estos
lenguajes y generar un programa ejecutable binario en el lenguaje de lalenguajes y generar un programa ejecutable binario en el lenguaje de la
máquina donde ha de correr.máquina donde ha de correr.
La sigla GCC significa "GNU Compiler Collection". OriginalmenteLa sigla GCC significa "GNU Compiler Collection". Originalmente
significaba "GNU C Compiler"; todavía se usa GCC para designar unasignificaba "GNU C Compiler"; todavía se usa GCC para designar una
compilación en C. G++ refiere a una compilación en C++.compilación en C. G++ refiere a una compilación en C++.
Grandes Etapas para escribir un programa en C.Grandes Etapas para escribir un programa en C.
Escribir el código fuenteEscribir el código fuente
Un simple bloc de notas puede ser suficiente, por ejemplo podemos escribir en el fichero plop.c:Un simple bloc de notas puede ser suficiente, por ejemplo podemos escribir en el fichero plop.c:
#include <stdio.h>#include <stdio.h>
int main(){int main(){
printf("plop !n");printf("plop !n");
return 0;return 0;
}}
CompilarCompilar
Bajo Linux llamamos directamente a gcc (-W y –Wall permiten mostrar más mensajes para verificar si elBajo Linux llamamos directamente a gcc (-W y –Wall permiten mostrar más mensajes para verificar si el
código es “limpio”, -o plop.exe indica que el ejecutable que será creado debe llamarse plop.exe):código es “limpio”, -o plop.exe indica que el ejecutable que será creado debe llamarse plop.exe):
gcc -W -Wall -o plop.exe plop.cgcc -W -Wall -o plop.exe plop.c
Implícitamente el compilador hace las tres etapas descritas anteriormente.Implícitamente el compilador hace las tres etapas descritas anteriormente.
1) El preprocesado1) El preprocesado
/* Todo lo que es definido por <stdio.h>, incluyendo printf() *//* Todo lo que es definido por <stdio.h>, incluyendo printf() */
int main(){int main(){
printf("plop !n");printf("plop !n");
return 0;return 0;
}}
2) Compilación (encuentra sin problemas printf ya que éste es declarado en <stdio.h>)2) Compilación (encuentra sin problemas printf ya que éste es declarado en <stdio.h>)
3) Enlazado (encuentra sin problemas printf en el binario de la lib c). También lo podemos verificar bajo3) Enlazado (encuentra sin problemas printf en el binario de la lib c). También lo podemos verificar bajo
Linux con ldd:Linux con ldd:
ldd plop.exeldd plop.exe
Lo que da:Lo que da:
linux-gate.so.1 => (0xb7f2b000)linux-gate.so.1 => (0xb7f2b000)
libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7dbb000) /lib/ld-linux.so.2(0xb7f2c000)libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7dbb000) /lib/ld-linux.so.2(0xb7f2c000)
En la segunda línea podemos ver que utiliza la lib c. luego crea plop.exe. Por otra parte comprobamos queEn la segunda línea podemos ver que utiliza la lib c. luego crea plop.exe. Por otra parte comprobamos que
no hay error ni warning.no hay error ni warning.
EjecuciónEjecución
Tan solo queda ejecutarlo:Tan solo queda ejecutarlo:
./plop.exe./plop.exe
Lo que da como esperado:Lo que da como esperado:
plop!plop!
Si algún error se produce aquí (error de segmentación, falta de memoria, etc.), por lo general habrá queSi algún error se produce aquí (error de segmentación, falta de memoria, etc.), por lo general habrá que
recurrir a un depurador (por ejemplo gdb o ddd), revisar el código fuente, etc. En todos los casos, no serárecurrir a un depurador (por ejemplo gdb o ddd), revisar el código fuente, etc. En todos los casos, no será
un problema de compilación.un problema de compilación.
Articulo relacionado: error de segmentaciónArticulo relacionado: error de segmentación
Atención: Bajo Windows existen dos métodos para ejecutar un programa:Atención: Bajo Windows existen dos métodos para ejecutar un programa:
Método 1: podemos ejecutar un programa a través de los comando ms-dos (haciendo clic en Inicio /Método 1: podemos ejecutar un programa a través de los comando ms-dos (haciendo clic en Inicio /
Ejecutar y escribir “cmd”). Con el comando cd nos colocamos en el directorio y ejecutamos el programa.Ejecutar y escribir “cmd”). Con el comando cd nos colocamos en el directorio y ejecutamos el programa.
En este caso todo ira bien.En este caso todo ira bien.
Método 2: Si ejecutamos el programa desde el explorador, no podremos ver el programa a menos queMétodo 2: Si ejecutamos el programa desde el explorador, no podremos ver el programa a menos que
pongamos una pausa justo antes del final del programa.pongamos una pausa justo antes del final del programa.
#include <stdio.h>#include <stdio.h>
int main(){int main(){
printf("plop !n");printf("plop !n");
getchar(); /* el programa se detiene a menos que presionemos una tecla */getchar(); /* el programa se detiene a menos que presionemos una tecla */
return 0;return 0;
}}
Instalacion de un Compilador.
Bajo LinuxBajo Linux
En general se utiliza gcc y g++. Para instalarlo se utiliza su gestor de paquetesEn general se utiliza gcc y g++. Para instalarlo se utiliza su gestor de paquetes
habitual. Por ejemplo bajo Debian (o cualquier distribución basada en debian)habitual. Por ejemplo bajo Debian (o cualquier distribución basada en debian)
basta con escribir como root o con un sudo:basta con escribir como root o con un sudo:
aptitude updateaptitude update
aptitude safe-upgradeaptitude safe-upgrade
aptitude install gcc g++aptitude install gcc g++
Del mismo modo podemos instalar un entrono de desarrollo como por ejemploDel mismo modo podemos instalar un entrono de desarrollo como por ejemplo
kdevelop (bajo KDE) o anjuta (bajo gnome).kdevelop (bajo KDE) o anjuta (bajo gnome).

Más contenido relacionado

La actualidad más candente

Cómo instalar dev c++
Cómo instalar dev c++Cómo instalar dev c++
Cómo instalar dev c++16134817
 
Quasi - Compilación en C de Linux
Quasi - Compilación en C de LinuxQuasi - Compilación en C de Linux
Quasi - Compilación en C de Linuxdegarden
 
Acoplamiento de Precision Language suite con Lazarus 1.0.8
Acoplamiento de Precision Language suite con Lazarus 1.0.8Acoplamiento de Precision Language suite con Lazarus 1.0.8
Acoplamiento de Precision Language suite con Lazarus 1.0.8Jose Torres
 
Desarrollo de aplicaciones , programacion en dev ++
Desarrollo de aplicaciones , programacion  en   dev ++Desarrollo de aplicaciones , programacion  en   dev ++
Desarrollo de aplicaciones , programacion en dev ++ernestre
 
Usando flex en Windows
Usando flex en WindowsUsando flex en Windows
Usando flex en WindowsMariano Rico
 
Programación en c primer programa en c
Programación en c primer programa en cProgramación en c primer programa en c
Programación en c primer programa en cFree Lancer
 
Unidad3 130504222102-phpapp02
Unidad3 130504222102-phpapp02Unidad3 130504222102-phpapp02
Unidad3 130504222102-phpapp02Lesly Gonzalez
 
Trabajo flex byson
Trabajo flex bysonTrabajo flex byson
Trabajo flex bysonJhon Alexito
 
Unidad 3
Unidad 3Unidad 3
Unidad 3luz0987
 
Compiladores - Flex y Bison
Compiladores - Flex y BisonCompiladores - Flex y Bison
Compiladores - Flex y BisonSteven Tabango
 
Tutorial Flex y Bison
Tutorial Flex y BisonTutorial Flex y Bison
Tutorial Flex y BisonShirlid .n
 

La actualidad más candente (20)

Cómo instalar dev c++
Cómo instalar dev c++Cómo instalar dev c++
Cómo instalar dev c++
 
Quasi - Compilación en C de Linux
Quasi - Compilación en C de LinuxQuasi - Compilación en C de Linux
Quasi - Compilación en C de Linux
 
Dev c++
Dev c++Dev c++
Dev c++
 
Acoplamiento de Precision Language suite con Lazarus 1.0.8
Acoplamiento de Precision Language suite con Lazarus 1.0.8Acoplamiento de Precision Language suite con Lazarus 1.0.8
Acoplamiento de Precision Language suite con Lazarus 1.0.8
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Dev c++
Dev c++Dev c++
Dev c++
 
Desarrollo de aplicaciones , programacion en dev ++
Desarrollo de aplicaciones , programacion  en   dev ++Desarrollo de aplicaciones , programacion  en   dev ++
Desarrollo de aplicaciones , programacion en dev ++
 
UNIDAD 3
UNIDAD 3 UNIDAD 3
UNIDAD 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Usando flex en Windows
Usando flex en WindowsUsando flex en Windows
Usando flex en Windows
 
Manual del dev c++
Manual del dev c++Manual del dev c++
Manual del dev c++
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Freepascal
FreepascalFreepascal
Freepascal
 
Programación en c primer programa en c
Programación en c primer programa en cProgramación en c primer programa en c
Programación en c primer programa en c
 
Unidad3 130504222102-phpapp02
Unidad3 130504222102-phpapp02Unidad3 130504222102-phpapp02
Unidad3 130504222102-phpapp02
 
Trabajo flex byson
Trabajo flex bysonTrabajo flex byson
Trabajo flex byson
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Introduccion dev c++
Introduccion dev c++Introduccion dev c++
Introduccion dev c++
 
Compiladores - Flex y Bison
Compiladores - Flex y BisonCompiladores - Flex y Bison
Compiladores - Flex y Bison
 
Tutorial Flex y Bison
Tutorial Flex y BisonTutorial Flex y Bison
Tutorial Flex y Bison
 

Destacado (11)

¿QUÈ ES GNE/LINUX?
¿QUÈ ES GNE/LINUX?¿QUÈ ES GNE/LINUX?
¿QUÈ ES GNE/LINUX?
 
software libre
software libresoftware libre
software libre
 
Diferentes lenguajes de programación para diseño web
Diferentes lenguajes de programación para diseño webDiferentes lenguajes de programación para diseño web
Diferentes lenguajes de programación para diseño web
 
Trabajo de investigacion
Trabajo de investigacionTrabajo de investigacion
Trabajo de investigacion
 
Exposición - IOS
Exposición - IOSExposición - IOS
Exposición - IOS
 
PresentacióN Unicah
PresentacióN UnicahPresentacióN Unicah
PresentacióN Unicah
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Lenguaje cc++
Lenguaje cc++Lenguaje cc++
Lenguaje cc++
 
Presentacion Cuadros Sinopticos
Presentacion Cuadros SinopticosPresentacion Cuadros Sinopticos
Presentacion Cuadros Sinopticos
 
Maquina virtual
Maquina virtualMaquina virtual
Maquina virtual
 
Gnu o linux
Gnu o linuxGnu o linux
Gnu o linux
 

Similar a Presentacion: ¿Que es Compilador?

Yareli martinez rios
Yareli martinez riosYareli martinez rios
Yareli martinez riosYaaree
 
Trabajo de presentacion
Trabajo de presentacionTrabajo de presentacion
Trabajo de presentaciondodi1997
 
OpenMP - Configuración de IDE y ejecución de código paralelo
OpenMP - Configuración de IDE y ejecución de código paraleloOpenMP - Configuración de IDE y ejecución de código paralelo
OpenMP - Configuración de IDE y ejecución de código paraleloadelsolar
 
Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1karlalopezbello
 
Aplicar los pricipios de programacion en la solucion de problemas 33
Aplicar los pricipios de programacion en la solucion de problemas 33Aplicar los pricipios de programacion en la solucion de problemas 33
Aplicar los pricipios de programacion en la solucion de problemas 33Jahir Sanchez Sdval
 
Resolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusResolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusGladys Arce
 
Resolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusResolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusAbefo
 
Manual Pascal
Manual PascalManual Pascal
Manual PascalCEUNISAL
 
Entornos de lenguaje c2
Entornos de lenguaje c2Entornos de lenguaje c2
Entornos de lenguaje c2alejanlaura
 
Programación en c y c++ prev
Programación en c y c++ prevProgramación en c y c++ prev
Programación en c y c++ prevjtk1
 

Similar a Presentacion: ¿Que es Compilador? (20)

Compiladores
CompiladoresCompiladores
Compiladores
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Yareli martinez rios
Yareli martinez riosYareli martinez rios
Yareli martinez rios
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Trabajo de presentacion
Trabajo de presentacionTrabajo de presentacion
Trabajo de presentacion
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
OpenMP - Configuración de IDE y ejecución de código paralelo
OpenMP - Configuración de IDE y ejecución de código paraleloOpenMP - Configuración de IDE y ejecución de código paralelo
OpenMP - Configuración de IDE y ejecución de código paralelo
 
Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1
 
Aplicar los pricipios de programacion en la solucion de problemas 33
Aplicar los pricipios de programacion en la solucion de problemas 33Aplicar los pricipios de programacion en la solucion de problemas 33
Aplicar los pricipios de programacion en la solucion de problemas 33
 
C
C C
C
 
Resolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusResolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplus
 
Resolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplusResolviendo problemas-con-cplusplus
Resolviendo problemas-con-cplusplus
 
Manual Pascal
Manual PascalManual Pascal
Manual Pascal
 
Entornos de lenguaje c2
Entornos de lenguaje c2Entornos de lenguaje c2
Entornos de lenguaje c2
 
Programación en c y c++ prev
Programación en c y c++ prevProgramación en c y c++ prev
Programación en c y c++ prev
 

Presentacion: ¿Que es Compilador?

  • 2. ¿Que es un compilador?¿Que es un compilador? Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, pero también puede ser un código intermedio (bytecode), o simplemente texto. Este proceso de traducción se conoce como compilación. Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de máquina). De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a como piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora. Como parte importante de este proceso de traducción, el compilador informa a su usuario de la presencia de errores en el programa fuente.
  • 3. Fases de la Compilacion.Fases de la Compilacion. La primera fase consiste en escribir el código fuente en lenguaje C o C++ (archivos con extensión .c y .h en C y .cpp y .hpp en C++). Luego se efectúa la compilación, por ejemplo con gcc (en C) o g++ (en C++). La compilación se desarrolla en tres grandes fases. 1) El preprocesado El compilador comienza por aplicar cada instrucción pasada al preprocesador (todas las líneas que comienzan con #, entre estas las #define). Estas instrucciones son en realidad muy simples ya que únicamente copian o eliminan secciones de código sin compilarlas. Es en esta fase que las #define que se encuentran en un archivo fuente (.c o .cpp) o en un header (.h o .hpp) son reemplazadas por código C/C+. Al final de esta etapa, no habrán instrucciones comenzando por #. 2) La compilación Luego, el compilador compila cada archivo fuente (.c y .cpp), es decir crea un archivo binario (.o) para cada archivo fuente, excepto para el archivo conteniendo la función main. Esta fase constituye la compilación propiamente dicha. Estas dos primeras etapas son realizadas por cc cuando se utiliza gcc/g++. 3) El enlazado Finalmente, el compilador une cada archivo .o con los archivos binarios de las librerías que son utilizadas (archivos .a y .so bajo Linux, archivos .dll bajo Windows). Especialmente, verifica que cada función llamada en el programa no esté solamente declarada (esto es hecho durante la compilación) sino también implementada. También verifica que una función no esté implementada en varios archivos .o. Esta fase constituye la fase final para obtener un ejecutable (.exe bajo Windows, generalmente sin extensión bajo Linux).
  • 4. Compilador para Linux G++,GCC.Compilador para Linux G++,GCC. G++Saltar a: navegación, búsquedaG++Saltar a: navegación, búsqueda g++ es el alias tradicional de GNU C++, un conjunto gratuito deg++ es el alias tradicional de GNU C++, un conjunto gratuito de compiladores de C++. Forma parte del GCC, GNU Compiler Collection (delcompiladores de C++. Forma parte del GCC, GNU Compiler Collection (del inglés, colección de compiladores GNU).inglés, colección de compiladores GNU). En sistemas operativos GNU, gcc es el comando usado para ejecutar elEn sistemas operativos GNU, gcc es el comando usado para ejecutar el compilador de C, mientras que g++ ejecuta el compilador de C++.compilador de C, mientras que g++ ejecuta el compilador de C++. GCC: es un compilador integrado del proyecto GNU para C, C++, ObjectiveGCC: es un compilador integrado del proyecto GNU para C, C++, Objective C y Fortran; es capaz de recibir un programa fuente en cualquiera de estosC y Fortran; es capaz de recibir un programa fuente en cualquiera de estos lenguajes y generar un programa ejecutable binario en el lenguaje de lalenguajes y generar un programa ejecutable binario en el lenguaje de la máquina donde ha de correr.máquina donde ha de correr. La sigla GCC significa "GNU Compiler Collection". OriginalmenteLa sigla GCC significa "GNU Compiler Collection". Originalmente significaba "GNU C Compiler"; todavía se usa GCC para designar unasignificaba "GNU C Compiler"; todavía se usa GCC para designar una compilación en C. G++ refiere a una compilación en C++.compilación en C. G++ refiere a una compilación en C++.
  • 5. Grandes Etapas para escribir un programa en C.Grandes Etapas para escribir un programa en C. Escribir el código fuenteEscribir el código fuente Un simple bloc de notas puede ser suficiente, por ejemplo podemos escribir en el fichero plop.c:Un simple bloc de notas puede ser suficiente, por ejemplo podemos escribir en el fichero plop.c: #include <stdio.h>#include <stdio.h> int main(){int main(){ printf("plop !n");printf("plop !n"); return 0;return 0; }} CompilarCompilar Bajo Linux llamamos directamente a gcc (-W y –Wall permiten mostrar más mensajes para verificar si elBajo Linux llamamos directamente a gcc (-W y –Wall permiten mostrar más mensajes para verificar si el código es “limpio”, -o plop.exe indica que el ejecutable que será creado debe llamarse plop.exe):código es “limpio”, -o plop.exe indica que el ejecutable que será creado debe llamarse plop.exe): gcc -W -Wall -o plop.exe plop.cgcc -W -Wall -o plop.exe plop.c Implícitamente el compilador hace las tres etapas descritas anteriormente.Implícitamente el compilador hace las tres etapas descritas anteriormente. 1) El preprocesado1) El preprocesado /* Todo lo que es definido por <stdio.h>, incluyendo printf() *//* Todo lo que es definido por <stdio.h>, incluyendo printf() */ int main(){int main(){ printf("plop !n");printf("plop !n"); return 0;return 0; }} 2) Compilación (encuentra sin problemas printf ya que éste es declarado en <stdio.h>)2) Compilación (encuentra sin problemas printf ya que éste es declarado en <stdio.h>)
  • 6. 3) Enlazado (encuentra sin problemas printf en el binario de la lib c). También lo podemos verificar bajo3) Enlazado (encuentra sin problemas printf en el binario de la lib c). También lo podemos verificar bajo Linux con ldd:Linux con ldd: ldd plop.exeldd plop.exe Lo que da:Lo que da: linux-gate.so.1 => (0xb7f2b000)linux-gate.so.1 => (0xb7f2b000) libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7dbb000) /lib/ld-linux.so.2(0xb7f2c000)libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7dbb000) /lib/ld-linux.so.2(0xb7f2c000) En la segunda línea podemos ver que utiliza la lib c. luego crea plop.exe. Por otra parte comprobamos queEn la segunda línea podemos ver que utiliza la lib c. luego crea plop.exe. Por otra parte comprobamos que no hay error ni warning.no hay error ni warning. EjecuciónEjecución Tan solo queda ejecutarlo:Tan solo queda ejecutarlo: ./plop.exe./plop.exe Lo que da como esperado:Lo que da como esperado: plop!plop! Si algún error se produce aquí (error de segmentación, falta de memoria, etc.), por lo general habrá queSi algún error se produce aquí (error de segmentación, falta de memoria, etc.), por lo general habrá que recurrir a un depurador (por ejemplo gdb o ddd), revisar el código fuente, etc. En todos los casos, no serárecurrir a un depurador (por ejemplo gdb o ddd), revisar el código fuente, etc. En todos los casos, no será un problema de compilación.un problema de compilación. Articulo relacionado: error de segmentaciónArticulo relacionado: error de segmentación Atención: Bajo Windows existen dos métodos para ejecutar un programa:Atención: Bajo Windows existen dos métodos para ejecutar un programa: Método 1: podemos ejecutar un programa a través de los comando ms-dos (haciendo clic en Inicio /Método 1: podemos ejecutar un programa a través de los comando ms-dos (haciendo clic en Inicio / Ejecutar y escribir “cmd”). Con el comando cd nos colocamos en el directorio y ejecutamos el programa.Ejecutar y escribir “cmd”). Con el comando cd nos colocamos en el directorio y ejecutamos el programa. En este caso todo ira bien.En este caso todo ira bien. Método 2: Si ejecutamos el programa desde el explorador, no podremos ver el programa a menos queMétodo 2: Si ejecutamos el programa desde el explorador, no podremos ver el programa a menos que pongamos una pausa justo antes del final del programa.pongamos una pausa justo antes del final del programa. #include <stdio.h>#include <stdio.h> int main(){int main(){ printf("plop !n");printf("plop !n"); getchar(); /* el programa se detiene a menos que presionemos una tecla */getchar(); /* el programa se detiene a menos que presionemos una tecla */ return 0;return 0; }}
  • 7. Instalacion de un Compilador. Bajo LinuxBajo Linux En general se utiliza gcc y g++. Para instalarlo se utiliza su gestor de paquetesEn general se utiliza gcc y g++. Para instalarlo se utiliza su gestor de paquetes habitual. Por ejemplo bajo Debian (o cualquier distribución basada en debian)habitual. Por ejemplo bajo Debian (o cualquier distribución basada en debian) basta con escribir como root o con un sudo:basta con escribir como root o con un sudo: aptitude updateaptitude update aptitude safe-upgradeaptitude safe-upgrade aptitude install gcc g++aptitude install gcc g++ Del mismo modo podemos instalar un entrono de desarrollo como por ejemploDel mismo modo podemos instalar un entrono de desarrollo como por ejemplo kdevelop (bajo KDE) o anjuta (bajo gnome).kdevelop (bajo KDE) o anjuta (bajo gnome).