PDF de programación - Una Introducción a GCC

Imágen de pdf Una Introducción a GCC

Una Introducción a GCCgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 1 de Marzo del 2018)
427 visualizaciones desde el 1 de Marzo del 2018
633,7 KB
135 paginas
Creado hace 5a (31/12/2014)
Una Introducción a GCC

http://www.davidam.com/docu/gccintro.es.html

[Arriba] [Índice general] [Índice] [ ? ]

Una Introducción a GCC

Este manual proporciona una introducción a los Compiladores de GNU de C y C++, gcc y g++,
que son parte de la Colección de Compiladores de GNU (GCC).
El desarrollo de este manual fué realizado enteramente por Network Theory Ltd. Las copias
publicadas por Network Theory Ltd traerán dinero para más documentación libre.
La traducción al español de este manual fué realizada por David Arroyo Menéndez y Luis
Palomo de Onís


Prefacio

1. Introducción

2. Compilando un programa C

3. Opciones de compilación

4. Usando el preprocesador

5. Compilando para depuración

6. Compilando con optimización
7. Compilando un programa C++

8. Opciones específicas de plataforma
9. Resolución de problemas

10. Utilidades relativas al compilador

11. Como funciona el compilador

12. Examinado archivos compilados

13. Mensajes comunes de error
14. Obteniendo ayuda


Lectura adicional

Reconocimientos

Organizaciones de software libre
Índice


[ < ] [ > ] [ << ] [ Subir ] [ >> ]

[Arriba] [Índice general] [Índice] [ ? ]

Prefacio

Este Prefacio es una amable contribución de Richard M. Stallman, el principal autor de GCC y
fundador del Proyecto GNU.
Este libro es una guía para iniciarse en GCC, GNU Compiler Collection (Colección de
Compiladores GNU). Se mostrará cómo usar GCC como una herramienta de programación.
GCC es una herramienta de programación, esto es verdad— pero también es algo más.
También forma parte de la campaña por la libertad de los usuarios de ordenadores desde hace
más de 20 años.
Todo lo que queremos es buen software, pero ¿qué significa para nosotros que un software sea
bueno?. Funcionalidades adecuadas y fiabilidad puede ser algo técnicamente bueno, pero esto
no es suficiente. Un buen software debe además ser éticamente bueno: tiene que ser

1 of 135

12/31/2014 07:53 PM

Una Introducción a GCC

http://www.davidam.com/docu/gccintro.es.html

respetuoso con la libertad de los usuarios.
Como usuario de software, se debería tener el derecho a ejecutarlo como se necesite, el
derecho a estudiar el código fuente y a cambiarlo como se desee, el derecho a redistribuir
copias de éste a terceras personas, y el derecho a publicar versiones modificadas con lo que se
puede contribuir a la construcción de la comunidad. Cuando un programa respeta la libertad
de esta forma, se dice que es software libre. Anteriormente a GCC había otros compiladores
para C, Fortran, Ada, etc. Pero no eran software libre, y no se podían usar libremente. Escribí
el GCC para que se pueda usar un compilador sin perder nuestra libertad.
Un compilador solo no es suficiente —para usar un sistema de computación, se debe disponer
de un sistema operativo completo. En 1983, todos los sistemas operativos para ordenadores
modernos eran no libres. Para remediar esto, en 1984 comencé a desarrollar el sistema
operativo GNU, un sistema similiar a Unix que sería software libre. El desarrollo de GCC fué
una parte del desarrollo de GNU.
A principios de los 90, el recién terminado sistema operativo GNU fué completado con la suma
de un kernel, Linux, que se hizo software libre en 1992. El sistema operativo combinado
GNU/Linux ha alcanzado la meta de hacer posible el uso de una computadora en libertad. Pero
la libertad nunca está automáticamente asegurada, y debemos trabajar para protegerla. El
Movimiento del Software Libre necesita tu apoyo.

Richard M. Stallman Febrero de 2004

[ < ] [ > ] [ << ] [ Subir ] [ >> ]

[Arriba] [Índice general] [Índice] [ ? ]

1. Introducción

El propósito de este libro es explicar el uso de los compiladores de GNU C y C++, gcc y g++.
Después de leer este libro se comprenderá como compilar un programa y, cómo usar las
opciones básicas del compilador para optimización y depuración. Este libro no intenta enseñar
los lenguajes C o C++ en sí, este material puede ser encontrado en muchos otros lugares
(véase la sección Lectura adicional).
Los programadores experimentados que están familiarizados con otros sistemas, pero son
nuevos en compiladores GNU, pueden saltarse las primeras secciones de los capítulos
“Compilando un programa C”, “Usando el preprocesador” y “Compilando un programa C++”.
Las secciones y capítulos restantes proporcionan una buena visión del conjunto de las
funcionalidades de GCC para aquellos que ya saben cómo usar otros compiladores.

1.1 Una breve historia de GCC

1.2 Importantes características de GCC
1.3 Programación en C y C++

1.4 Convenciones usadas en este manual

[Arriba] [Índice general] [Índice] [ ? ]

[ < ] [ > ] [ << ] [ Subir ] [ >> ]
1.1 Una breve historia de GCC
El autor original del Compilador de C de GNU (GCC) es Richard Stallman, el fundador del
Proyecto GNU.
El Proyecto GNU fué iniciado en 1984 para crear un sistema operativo basado en software

2 of 135

12/31/2014 07:53 PM

Una Introducción a GCC

http://www.davidam.com/docu/gccintro.es.html

libre similar a UNIX y, así promover la libertad y la cooperación entre usarios de ordenadores
y programadores. Cualquier sistema operativo basado en UNIX necesita un compilador de C, y
no había compiladores libres en ese momento, el Proyecto GNU debía desarrollar uno desde
cero. Este trabajo fué financiado por donaciones de individuos y compañias a través de la Free
Software Foundation, una organización sin ánimo de lucro destinada a dar soporte al trabajo
del Proyecto GNU.
La primera entrega de GCC fué hecha en 1987. Esto fué un significativo progreso, siendo el
primer compilador portable para optimizar ANSI C liberado como software libre. Desde este
momento GCC ha llegado a ser uno de las más importantes herramientas en el desarrollo de
software libre.
Un avance importante en el compilador llega con la serie 2.0 en 1992, que añade la capacidad
de compilar C++. En 1997, se creó una rama experimental del compilador (EGCS) para
mejorar la optimización y el soporte de C++. Después de este trabajo, EGCS fué adoptado
como la principal línea de desarrollo de GCC y, estas funcionalidades llegaron a estar
ampliamente disponibles en la versión 3.0 de GCC en 2001.
A través del tiempo GCC ha sido extendido para dar soporte a muchos lenguajes adicionales,
incluyendo Fortran, ADA, Java y Objective-C. El acrónimo GCC es ahora usado para referir al
“GNU Compiler Collection” (Colección de Compiladores de GNU). Su desarrollo está guiado
por el GCC Steering Committee, un grupo compuesto de representantes de las comunidades
de usuarios/as de GCC en la industria, la investigación y la academia.

[Arriba] [Índice general] [Índice] [ ? ]

[ < ] [ > ] [ << ] [ Subir ] [ >> ]
1.2 Importantes características de GCC
Esta sección describe algunas de las más importantes funcionalidades de GCC.
Lo primero de todo, GCC es un compilador portable —se ejecuta en la mayoría de las
plataformas disponibles hoy, y puede producir salidas para muchos tipos de procesadores.
Además de procesadores usados en ordenadores personales, también soporta
microcontroladores, DSPs y CPUs de 64 bits.
GCC no es solo un compilador nativo —también puede compilar cruzado cualquier programa,
produciendo ficheros ejecutables para un sistema diferente desde el que GCC está siendo
usado. Esto permite compilar software para sistemas embebidos que no son capaces de
ejecutar un compilador. GCC está escrito en C con un fuerte enfoque hacia la portabilidad, y
puede compilarse a sí mismo, así puede ser adaptado a nuevos sistemas fácilmente.
GCC tiene múltiples frontends, para parsear diferentes lenguajes. Los programas en cada
lenguaje pueden ser compilados, o compilados de manera cruzada, para cualquier
arquitectura. Por ejemplo, un programa en ADA puede ser compilado para un
microcontrolador, o un programa en C para un supercomputador.
GCC tiene un diseño modular, permitiendo que el soporte para nuevos lenguajes y
arquitecturas sea añadido. Añadir un nuevo front-end a GCC habilita el uso de este lenguaje en
cualquier arquitectura y proporciona que estén disponibles facilidades (tales como librerías)
en tiempo de ejecución. De manera similar, si se añade soporte para una nueva arquitectura
éste se vuelve disponible para todos los lenguajes.
Finalmente, y de manera más importante, GCC es software libre, distribuido bajo la GNU
General Public License (GNU GPL).(1) Esto significa que se tiene la libertad para usar y
modificar GCC, como con todo el software de GNU. Si se necesita soporte para un nuevo tipo

3 of 135

12/31/2014 07:53 PM

Una Introducción a GCC

http://www.davidam.com/docu/gccintro.es.html

de CPU, un nuevo lenguaje, o una nueva funcionalidad es posible añadirla uno mismo o
contratar a alguien para mejorar GCC de manera personalizada. Se puede contratar a alguien
para arreglar un error si esto es importante en el trabajo cotidiano.
Más allá, hay libertad para compartir cualquier mejora hecha a GCC. Como resultado de esta
libertad, se pueden usar las mejoras hechas a GCC por otras personas. Las muchas
funcionalidades ofrecidas por GCC hoy muestran cómo esta libertad de cooperar funciona en
tu beneficio, y en el de cualquiera que use GCC.

[Arriba] [Índice general] [Índice] [ ? ]

[ < ] [ > ] [ << ] [ Subir ] [ >> ]
1.3 Programación en C y C++
C y C++ son lenguajes que permiten acceso directo a la memoria del ordenador.
Históricamente, han sido usados para escribir sistemas software de bajo nivel, y aplicaciones
dónde el alto rendimiento o el control a través del uso de recursos son críticos. Sin embargo,
se requiere de gran cuidado para asegurar que la memoria es accedida de manera correcta,
para evitar la corrupción de otras estructuras de datos. Este libro describe técnicas que
ayudarán a detectar potenciales errores durante la compilación, pero los riesgos de usar
lenguajes como C o C++ nunca pueden ser eliminados.
Además de C y C++ el Proyecto GNU también proporciona otros lenguajes de alto nivel, tales
como GNU Common Lisp (gcl), GNU Smallt
  • Links de descarga
http://lwp-l.com/pdf9140

Comentarios de: Una Introducción a GCC (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad