Compila programas escritos en lenguaje C, C++, o C dirigido a objetos. Cabe mencionar que tambin compila FORTRAN (claro, con apoyo de g77).
Qu es gcc?
Ejemplo
Los sistemas LINUX/UNIX son entornos de programacin muy amigables, no es posible describir con exactitud porque, tal vez se deba al hecho de que estos sistemas estn construidos con el lenguaje C (C fue diseado para el sistema operativo UNIX). Bien, para escribir cdigo C, basta con tomar nuestro editor de textos, crear el archivo y guardarlo con extensin c
# include<stdio.h> main() { int entero1, entero2, operacion; printf("primer numero\n"); scanf("%d", &entero1); printf("segundo numero\n"); scanf("%d", &entero2); operacion=entero1 + entero2; printf("la suma es %d\n", operacion); operacion=entero1 - entero2; printf("la resta es %d\n", operacion); operacion=entero1 / entero2; printf("la divisin es %d\n", operacion); operacion=entero1 * entero2; printf("la multiplicacin operacion); return 0; } es %d\n",
Guardamos este cdigo con el nombre operando.c y compilamos: $>gcc operando.c -o operando Para Correr (o ejecutar) el programa, basta con hacer: $> ./mensaje
Un breve comentario sobre algunas de las opciones de gcc. Si se dispone de archivos de biblioteca o de inclusin situados en ubicaciones no estndar, las opciones -lbiblioteca, -Lruta_a_directorio y -Iruta_a_directorio lo que hacen en si es permitirnos especificar tales ubicaciones, para que el compilador las busque, por ejemplo, supngase que hicimos un programa que utiliza las ncurses, digamos curses1.c, entonces, esto se compilara de la siguiente manera: Ikki:/home/javv>gcc curses1.c -o curses1 -lcurses O que tal un programa que utilice las Xlib, llamado X1.c, lo compilaramos as: Ikki:/home/javv>gcc X1.c -o X1 -lX11 -L/usr/X11R6/include O ms an, que nuestros archivos de inclusin habituales los almacenamos en /usr/home/javv/mis_include, entonces gcc las encontrar mediante: Ikki:/home/javv>gcc miarchivo.c -o miarchivo -I/usr/home/javv/mis_include En fin, as se podran hacer ms y ms cosas.
Cambiando un poco de tema, surge una pregunta: Cmo es que gcc procesa los archivos?, bien, lo que hace gcc es basarse en las extensiones de estos; la siguiente tabla muestra las extensiones ms comunes:
Extensin .c .C, .cc .i .ii .S, .s .o .a, .so Tipo de archivo Cdigo fuente de lenguaje C Cdigo fuente de lenguaje C++ Cdigo fuente de C preprocesado Cdigo fuente de C++ preprocesado Cdigo fuente de lenguaje ensamblador Cdigo objeto compilado Cdigo de biblioteca compilado
A manera de apndice
La compilacin de un programa consiste en varias etapas, y que por lo general nosotros no observamos, pues gcc las lleva a cabo de manera encubierta, por decirlo de algn modo, as que veamos el proceso de compilacin paso a paso, para ello nos auxiliaremos con el cdigo de mensaje.c; bsicamente lo que hace gcc es correr mensaje.c sobre el preprocesador , cpp, para expandir cualquier macro que pudiese haber e insertar tambin los contenidos de los archivos que incluimos mediante #include; la segunda etapa es compilar el cdigo fuente prepocesado, para convertirlo en cdigo objeto; por ltimo y con ayuda de ld, llamado linker, crea el binario llamado mensaje. Hagamos todo esto manualmente: 1.- para preprocesar mensaje.c: Ikki:/home/javv>gcc -E mensaje.c -o mensaje.cpp 2.- Hagamos la conversin de mensaje.cpp en cdigo objeto. Ikki:/home/javv>gcc -x cpp-output -c mensaje.cpp -o mensaje.o 3.- Ahora creemos el binario Ikki:/home/javv>gcc mensaje.o -o mensaje Lo anterior tiene utilidad si por ejemplo se presentan problemas entre algunos de los archivos incluidos mediante #include y nuestro cdigo fuente, as mediante la compilacin paso a paso es ms fcil detectar que archivos son lo que producen conflicto. Para ilustrarlo, basta con que tomemos un editor de texto, y veamos el contenido del archivo mensaje.cpp.
Despedida
Bueno, ojal este pequeo manual introductorio para el uso de gcc sea de utilidad :) cualquier error que encuentren, mil disculpas y espero me lo hagan saber.. ah! me parece que hay una versin de gcc para MS- DOS.