PDF de programación - Como se crea un programa ejecutable de un lenguaje compilado

Imágen de pdf Como se crea un programa ejecutable de un lenguaje compilado

Como se crea un programa ejecutable de un lenguaje compiladográfica de visualizaciones

Publicado el 29 de Mayo del 2018
1.272 visualizaciones desde el 29 de Mayo del 2018
826,4 KB
19 paginas
Creado hace 13a (02/02/2011)
04 Como se crea un programa ejecutable de un lenguaje compilado

Compiladores - Profr. Edgardo Adrián Franco Martínez

2

Contenido

• Compilador

• Compilación

• Generación de código ejecutable

• Generación de un código ejecutable de C/C++

• Preprocesado

• Compilador

• Ensamblador

• Enlazador

• Opciones útiles del compilador gcc



04 Como se crea un programa ejecutable de un lenguaje compilado

Compiladores - Profr. Edgardo Adrián Franco Martínez

3

Definición de compilador

• Un compilador es un programa que lee un programa

escrito en un lenguaje de programación, el
programa fuente, y lo traduce a un programa
equivalente en otro lenguaje , el programa o código
objeto.

04 Como se crea un programa ejecutable de un lenguaje compilado

Compiladores - Profr. Edgardo Adrián Franco Martínez

4

Compilación

término

• Generalmente el

"compilar" para un
programador hace referencia a la generación de un
archivo ejecutable (si se trata de un lenguaje
compilado). Aunque en realidad implique más que
solo "compilar".



Código
fuente

Compilador

Código
objeto

Enlazador

Programa
ejecutable

Biblioteca /

Otros códigos

objeto

04 Como se crea un programa ejecutable de un lenguaje compilado

Compiladores - Profr. Edgardo Adrián Franco Martínez

5

Generación de código ejecutable

• Como se ve en la etapa de compilación de un
lenguaje compilado, se obtiene un código objeto, el
cuál contiene sólo la traducción del código fuente.
Esto no es suficiente para ejecutar realmente el
programa. Es necesario incluir los archivos de
biblioteca o módulos compilados de manera
independiente.



Código
fuente

Compilador

Código
objeto

Enlazador

Programa
ejecutable

Archivos de
Cabecera /
Cabeceras

independientes

Biblioteca /

Otros códigos

objeto

04 Como se crea un programa ejecutable de un lenguaje compilado

Compiladores - Profr. Edgardo Adrián Franco Martínez

6

Generación de código ejecutable

• Normalmente un programa consta de diferentes
unidades o partes de programa que se han
compilado independientemente. Por consiguiente,
puede haber varios archivos objetos. Un programa
especial llamado enlazador toma el archivo objeto y
las partes necesarias de la biblioteca del sistema y
construye un archivo ejecutable para la plataforma
dada.





Código
objeto

Enlazador

Programa
ejecutable

Biblioteca /

Otros códigos

objeto

04 Como se crea un programa ejecutable de un lenguaje compilado

Compiladores - Profr. Edgardo Adrián Franco Martínez

7

Generación de código ejecutable en
C/C++

• Existen una gran cantidad de compiladores de C y
C++. En general todos los compiladores operan
esencialmente de la misma forma y comparten
muchas opciones comunes en la línea de opciones.



Código
fuente

Código objeto

Preprocesado

Compilador

Ensamblador

Enlazador

Programa
ejecutable

Archivos de
Cabecera /
Cabeceras

independientes

Biblioteca / Otros

códigos objeto

04 Como se crea un programa ejecutable de un lenguaje compilado

Compiladores - Profr. Edgardo Adrián Franco Martínez

8

Generación de código ejecutable en
C/C++

• El preprocesador acepta el código fuente como

entrada y es responsable de:
• Quitar los comentarios

• Interpretar las directivas del preprocesador (macros) las cuales inician

con #.



Código
fuente

Preprocesado

Compilador

Archivos de
Cabecera /
Cabeceras

independientes

04 Como se crea un programa ejecutable de un lenguaje compilado

Compiladores - Profr. Edgardo Adrián Franco Martínez

9

Generación de código ejecutable en
C/C++

• El compilador de C/C++ traduce el código fuente en
código de ensamblador. El código fuente es recibido
del preprocesador.



Preprocesado

Compilador

Ensamblador

Archivos de
Cabecera /
Cabeceras

independientes

04 Como se crea un programa ejecutable de un lenguaje compilado

Compiladores - Profr. Edgardo Adrián Franco Martínez

10

Generación de código ejecutable en
C/C++

• El ensamblador crea el código objeto o los archivos
objeto. En los sistemas con UNIX se podrán ver los
archivos con el sufijo .o, como paso intermedio
dentro de este se genera el código ensamblador del
programa (ensamblador nativo).



Código objeto

Compilador

Ensamblador

Enlazador

Archivos de
Cabecera /
Cabeceras

independientes

04 Como se crea un programa ejecutable de un lenguaje compilado

Compiladores - Profr. Edgardo Adrián Franco Martínez

11

Generación de código ejecutable en
C/C++

• Si algún archivo fuente hace referencia a funciones
de una biblioteca o de funciones que están definidas
en otros archivos fuentes, el enlazador combina
estas funciones "con main()" para crear un archivo
ejecutable. Las referencias a variables externas en
esta etapa son resueltas.

Código objeto

Enlazador

Programa
ejecutable

Biblioteca / Otros

códigos objeto

04 Como se crea un programa ejecutable de un lenguaje compilado

Compiladores - Profr. Edgardo Adrián Franco Martínez

12

Opciones útiles del compilador gcc

-E

• El compilador se detiene en

la etapa de
preprocesamiento y el resultado se muestra en la
salida estándar.



gcc -E arch1.c

04 Como se crea un programa ejecutable de un lenguaje compilado

Compiladores - Profr. Edgardo Adrián Franco Martínez

13

Opciones útiles del compilador gcc

-S

• El compilador se detiene en la etapa de ensamble y
genera el código ensamblador nativo alcanzado en
un archivo de salida .s.



gcc -S arch1.c

04 Como se crea un programa ejecutable de un lenguaje compilado

Compiladores - Profr. Edgardo Adrián Franco Martínez

14

Opciones útiles del compilador gcc

-c

• Suprime el proceso de ligado y produce un archivo .o

para cada archivo fuente listado.
gcc –c archi1.c

• Después los archivos objeto pueden ser ligados por

el comando gcc.

gcc arch1.o arch2.o ... -o nombre_ejecutable



04 Como se crea un programa ejecutable de un lenguaje compilado

Compiladores - Profr. Edgardo Adrián Franco Martínez

15

Opciones útiles del compilador gcc

-lbiblioteca

• Liga con las bibliotecas objeto. Esta opción deberá seguir
los argumentos de los archivos fuente. Las bibliotecas
objeto son guardadas y pueden estar estandarizadas, un
tercero o usuario las crea.

• Probablemente la biblioteca más comúnmente usada es la
biblioteca matemática (math.h). Esta biblioteca deberá
ligarse explícitamente si se desea usar las funciones
matemáticas (y por supuesto no olvidar el archivo cabecera
#include <math.h>, en el programa que llama a las
funciones),

gcc calc.c -o calc -lm

• Muchas otras bibliotecas son ligadas de esta forma.



04 Como se crea un programa ejecutable de un lenguaje compilado

Compiladores - Profr. Edgardo Adrián Franco Martínez

16

Opciones útiles del compilador gcc

-Ldirectorio

• Agrega directorios a la lista de directorios
que contienen las rutinas de la biblioteca de
objetos. El enlazador siempre busca las
bibliotecas estándares y del sistema en /lib y
/usr/lib (UNIX). Si se quieren ligar bibliotecas
personales, se tendrá que especificar donde
están guardados los archivos

gcc prog.c -L/home/minombr/mislibs milib.a



04 Como se crea un programa ejecutable de un lenguaje compilado

Compiladores - Profr. Edgardo Adrián Franco Martínez

17

Opciones útiles del compilador gcc

-Itrayectoria

• Agrega una trayectoria o ruta a la lista de directorios en los
cuales se buscarán los archivos cabecera #include con nombres
relativos (es decir, los que no empiezan con diagonal /).

• El preprocesador por default, primero busca los archivos
#include en el directorio que contiene el archivo fuente, y
después en los directorios nombrados con la opción -I si hubiera,
y finalmente, en /usr/include. Por lo tanto, si se quiere incluir
archivos
en
/home/minombr/miscabeceras se tendrá que hacer:

guardados

de

cabecera

gcc prog.c -I/home/minombr/miscabeceras



• Nota: Las cabeceras de las bibliotecas del sistema son guardados en un lugar
especial (/usr/include) y no son afectadas por la opción -I. Los archivos cabecera
del sistema y del usuario son incluídos en una manera un poco diferente.

04 Como se crea un programa ejecutable de un lenguaje compilado

Compiladores - Profr. Edgardo Adrián Franco Martínez

18

Opciones útiles del compilador gcc

-g

• Opción para llamar las opciones de depuración (debug).
Instruye al compilador para producir información adicional en
la tabla de símbolos que es usado por una variedad de
utilerías de depuración.



• Por ejemplo, si se emplea el depurador de GNU, el programa
deberá compilarse de la siguiente forma para generar
extensiones de GDB: gcc -ggdb -o prog prog.c

04 Como se crea un programa ejecutable de un lenguaje compilado

Compiladores - Profr. Edgardo Adrián Franco Martínez

19

Opciones útiles del compilador gcc

-v

• Muestra en la salida estándar de errores los
las etapas de
comandos ejecutados en
compilación.
  • Links de descarga
http://lwp-l.com/pdf11420

Comentarios de: Como se crea un programa ejecutable de un lenguaje compilado (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad