ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Como Compilar Un Programa En C.c++.gcc.g++.java


Enviado por   •  19 de Junio de 2013  •  1.697 Palabras (7 Páginas)  •  634 Visitas

Página 1 de 7

El compilador GCC

Sintaxis.

Ejemplos.

Sufijos en nombres de archivo.

Opciones.

Etapas de compilación.

1. Preprocesado.

2. Compilación.

3. Ensamblado.

4. Enlazado.

Todo en un solo paso

Enlace dinámico y estático.

Resumen.

Información adicional.

GCC es un compilador integrado del proyecto GNU para C, C++, Objective C y Fortran; es capaz de recibir un programa fuente en cualquiera de estos lenguajes y generar un programa ejecutable binario en el lenguaje de la máquina donde ha de correr.

La sigla GCC significa "GNU Compiler Collection". Originalmente significaba "GNU C Compiler"; todavía se usa GCC para designar una compilación en C. G++ refiere a una compilación en C++.

Sintaxis.

gcc [ opción | archivo ] ...

g++ [ opción | archivo ] ...

Las opciones van precedidas de un guión, como es habitual en UNIX, pero las opciones en sí pueden tener varias letras; no pueden agruparse varias opciones tras un mismo guión. Algunas opciones requieren después un nombre de archivo o directorio, otras no. Finalmente, pueden darse varios nombres de archivo a incluir en el proceso de compilación.

Ejemplos.

gcc hola.c

compila el programa en C hola.c, gener un archivo ejecutable a.out.

gcc -o hola hola.c

compila el programa en C hola.c, gener un archivo ejecutable hola.

g++ -o hola hola.cpp

compila el programa en C++ hola.c, gener un archivo ejecutable hola.

gcc -c hola.c

no genera el ejecutable, sino el código objeto, en el archivo hola.o. Si no s indica un nombre para el archivo objeto, usa el nombre del archivo en C y le cambia la extensión por .o.

gcc -c -o objeto.o hola.c

genera el código objeto indicando el nombre de archivo.

g++ -c hola.cpp

igual para un programa en C++.

g++ -o ~/bin/hola hola.cpp

genera el ejecutable hola en el subdirectorio bin del directorio propio del usuario.

g++ -L/lib -L/usr/lib hola.cpp

indica dos directorios donde han de buscarse bibliotecas. La opción -L debe repetirse para cada directorio de búsqueda de bibliotecas.

g++ -I/usr/include hola.cpp

indica un directorio para buscar archivos de encabezado (de extensión .h).

Sufijos en nombres de archivo.

Son habituales las siguientes extensiones o sufijos de los nombres de archivo:

.c fuente en C

.C .cc .cpp .c++ .cp .cxx fuente en C++; se recomienda .cpp

.m fuente en Objective-C

.i C preprocesado

.ii C++ preprocesdo

.s fuente en lenguaje ensamblador

.o código objeto

.h archivo para preprocesador (encabezados), no suele figurar en la linea de comando de gcc

Opciones.

- c

realiza preprocesamiento y compilación, obteniento el archivo en código objeto; no realiza el enlazado.

- E

realiza solamente el preprocesamiento, enviando el resultado a la salida estándar.

-o archivo

indica el nombre del archivo de salida, cualesquiera sean las etapas cumplidas.

-Iruta

especifica la ruta hacia el directorio donde se encuentran los archivos marcados para incluir en el programa fuente. No lleva espacio entre la I y la ruta, así: -I/usr/include

-L

especifica la ruta hacia el directorio donde se encuentran los archivos de biblioteca con el código objeto de las funciones referenciadas en el programa fuente. No lleva espacio entre la L y la ruta, así: -L/usr/lib

-Wall

muestra todos los mensajes de error y advertencia del compilador, incluso algunos cuestionables pero en definitiva fáciles de evitar escribiendo el código con cuidado.

-g

incluye en el ejecutable generado la información necesaria para poder rastrear los errores usando un depurador, tal como GDB (GNU Debugger).

-v

muestra los comandos ejecutados en cada etapa de compilación y la versión del compilador. Es un informe muy detallado.

Etapas de compilación.

El proceso de compilación involucra cuatro etapas sucesivas: preprocesamiento, compilación, ensamblado y enlazado. Para pasar de un programa fuente escrito por un humano a un archivo ejecutable es necesario realizar estas cuatro etapas en forma sucesiva. Los comandos gcc y g++ son capaces de realizar todo el proceso de una sola vez.

1. Preprocesado.

En esta etapa se interpretan las directivas al preprocesador. Entre otras cosas, las variables inicializadas con #define son sustituídas en el código por su valor en todos los lugares donde aparece su nombre.

Usaremos como ejemplo este sencillo programa de prueba, circulo.c:

/* Circulo.c: calcula el área de un círculo.

Ejemplo para mostrar etapas de compilación.

*/

#define PI 3.1416

main()

{

float area, radio;

radio = 10;

area = PI * (radio * radio);

printf("Circulo.\n");

printf("%s%f\n\n", "Area de circulo radio 10: ", area);

}

El preprocesado puede pedirse con cualquiera de los siguientes comandos; cpp alude específicamente al preprocesador.

$ gcc -E circulo.c > circulo.pp

$ cpp circulo.c > circulo.pp

Examinando circulo.pp

$ more circulo.pp

puede verse que la variable PI ha sido sustituída por su valor, 3.1416, tal como había sido fijado en la sentencia #define.

2. Compilación.

La compilación transforma el código C en el lenguaje ensamblador propio del procesador de nuestra máquina.

$ gcc -S circulo.c

realiza las dos primeras etapas creando el archivo circulo.s; examinándolo con

$ more

...

Descargar como (para miembros actualizados) txt (11 Kb)
Leer 6 páginas más »
Disponible sólo en Clubensayos.com