Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cursoc Vii
Cursoc Vii
Omar Andrs Zapata Mesa rupo de !enomenolog"a de #nteracciones !undamentales, $ %i%& 'ni(ersidad de Antio)uia
*irecti(as de Compilacin
Las
directi(as de compilacin son a)uellas e+presiones )ue empiezan por , y sir(en para indicar en tiempo de compilacin un n-mero de operaciones ./sicas para tener control de in%ormacin mientras se cumple con la etapa pre(ia a la compilacin llamada preprocesado. El preprocesado es a)uella etapa donde el compilador limpia el cdigo de comentarios y remplaza todos a)uellos (alores e+istentes en las directi(as de compilacin por todo lo necesario para crear c0digo o.jeto.
*irecti(as de Compilacin
Las
,error ,include ,i% ,else ,eli% ,endi% ,i%de% ,i%nde% ,unde%
,de%ine
,line ,pragma
Macronom.res prede%inidos
Los
macronom.res son (aria.les ya de%inidas en el am.iente de compilacin, se nom.ran con dos underline al %inal y al principio.
77L#1E77 77!#LE77 77*A5E77 775#ME77 7725*C77 1ro de la linea 1om.re del arc4i(o !ec4a 5iempo 6ue pertenece al estandar.
Cada compilador cuenta con una serie de macronom.re propios de%inidos para cada plata%orma y ar)uitectura.
2olamente Compilar 2olamente Preprocesar :uta a las ca.eceras :uta a las li.rerias (alor de directi(a (link) enlazar una librera Position Independent Code Modificar mensajes de advertencia (output) indicar archivo de salida.
Corremos los siguientes comandos y analizamos. gcc 9E 9*L#1 dir.c 9I. 9o dir.pre gcc 9*L#1 dir.c 9I. 9o dir << gcc dir.c
9I. 9o dir.o
Compilacin 2eparada
Es
la .ase en al construccin de proyectos grandes, por )ue permite aislar el cdigo en pe)ueQas porciones y tener un menjor control so.re la depuracin, compilacin y enlazado, 2e di(ide en Preprocesando, Compilacin, Ensam.lado, Enlazado. Este proceso por lo regular se 4ace con ayuda de programas de automatizacin de compilacin como lo son los MaRe%iles )ue (eremos m/s adelante
Compilacin
La
compilacin trans%orma el cdigo C en el lenguaje ensam.lador propio del procesador de nuestra m/)uina. S gcc 92 9#. dir.c realiza las dos primeras etapas creando el arc4i(o dir.sC e+amin/ndolo con S more dir.s puede (erse el programa en lenguaje ensam.lador.
Ensam.lado
El ensam.lado trans%orma el programa escrito en lenguaje ensam.lador a cdigo o.jeto, un arc4i(o .inario en lenguaje de m/)uina ejecuta.le por el procesador. El ensam.lador se denomina as3 S as 96y 9o dir.o dir.s Crea el arc4i(o en cdigo o.jeto dir.o a partir del arc4i(o en lenguaje ensam.lador dir.s. 1o es %recuente realizar slo el ensam.ladoC lo usual es realizar todas las etapas anteriores 4asta o.tener el cdigo o.jeto as"3 S gcc 9c dir.c
Enlazado
Enlazar
es agrupar todo el cdigo o.jeto necesario para )ue se genere un cdigo listo para lanzar al O2, contiene todo lo necesario para )ue la ejecucin se correcta. Para enlazar a .ajo ni(el usamos el programa ld aun)ue es mas %/cil enlazar directamente con gcc mostrar un ejemplo de como ser"a usando ld en clase. Para (er todo este proceso se le puede dar al compilador la opcin 9(
MaRe%ile
'n
MaRe%ile es un arc4i(o usado por el programa de compilacin maRe, en este se encuentran todas las rdenes re)ueridas para contruir un proyecto de so%t@are. Contiene una (aria.les ./sicas de%inidas como lo son CC C!LA 2 L*!LA 2 y unos o.jeti(os espec"%icos llamados reglas.
mili..c int %act$int +&O i%$+KKF& return IC else return +B%act$+9I&C P ,includeMmili..4N int main$& O print%$>%act$T& K LdEn>,%act$T&&C P main.c
Ejercicios
Vacer
modulos de n-meros complejos con su .4 y su .c, adem/s 4acerle un MaRe%ile. Vacer )ue los mdulos de los n-meros complejos cuando se les meta la directi(a de compilacin 9*de.ug impriman in%ormacin e+tra en los c/lculos.
:e%erencias
C Manual de :e%erencia Ver.ert 2c4ildt 2ugerida 4ttp3DDiie.%ing.edu.uyDW(agon.arDgcc9maReDgcc.4tm