Colección del compilador GNU
Desarrollado por | Proyecto GNU |
---|---|
Primera versión | 23 de mayo de 1987 |
Última versión | 11,1 (27 de abril de 2021) |
Depositar | gcc.gnu.org/git |
Escrito en | C ++ |
Interfaz | Interfaz de línea de comandos |
Idiomas de soporte | C , C ++ , Objective-C , Fortran , Ada , Go y D |
Sistema de explotación | Linux , Hurd y Microsoft Windows |
Medio ambiente | Multiplataforma |
Escribe | Compilador |
Licencia | Licencia pública general GNU versión 3 |
Sitio web | gcc.gnu.org |
GNU Compiler Collection , abreviado como GCC , es una colección de compiladores creados por el Proyecto GNU . GCC es un software gratuito capaz de compilar varios lenguajes de programación , incluidos C , C ++ , Objective-C , Java , Ada , Fortran y Go .
GCC se utiliza para el desarrollo de la mayoría de software libre. El kernel de Linux depende particularmente de la funcionalidad de GCC.
GCC fue diseñado para reemplazar el compilador de C suministrado como estándar en el sistema operativo Unix , que se llama CC. GCC originalmente significaba GNU C Compiler , o el " GNU C Compiler ". Como GCC es muy extensible, se ha agregado soporte para muchos otros lenguajes y el nombre oficial se ha cambiado a GNU Compiler Collection .
En la práctica, la abreviatura GCC se utiliza para nombrar tres entidades ligeramente diferentes:
Para referirnos específicamente a los compiladores de cada lenguaje, hablamos de:
Hay muchos otros compiladores basados en GCC que no forman parte de la distribución estándar del proyecto GCC.
Desde la versión 4.5 (4.6 y superior), los compiladores de GCC son extensibles a través de complementos (" complementos "). Estos deben ser software libre y pueden agregar pases de optimización, pragmas, incorporaciones o atributos (pero no pueden extender la sintaxis aceptada por GCC). Hay algunos complementos para GCC: Mozilla desarrolló Tree Hydra (descontinuado). El complemento gcc python permite extender GCC con scripts de Python, en particular para verificar el código C para Python. MELT es un lenguaje específico, inspirado en Lisp para extender GCC.
GCC también tiene una herramienta de depuración, GNU Debugger (gdb). Sin embargo , aunque no forma parte de GCC, se prefiere Valgrind para pruebas más profundas, especialmente para encontrar fugas de memoria .
GCC se ha adaptado a un número considerable de sistemas operativos (prácticamente todas las variantes de Unix , VMS , Windows y MS-DOS a través de DJGPP ) y microprocesadores ( AMD64 , ARM , DEC Alpha , M68k , MIPS , PowerPC , SPARC , x86 , Hitachi H8 ).
GCC, para el lenguaje C, no admite identificadores Unicode .
Richard Stallman comienza su desarrollo con el lenguaje de programación Pastel , un "dialecto" no portátil de Pascal . Por tanto, se puede utilizar una primera versión deJunio de 1984. Este lenguaje está parcialmente inspirado en el compilador Pastel , pero también en el compilador portátil de la Universidad de Arizona .
Escribió un nuevo compilador ANSI C a partir de la primavera de 1986, luego, con la ayuda de Len Tower y bajo los auspicios de la Free Software Foundation , distribuyó una primera versión beta en22 de marzo de 1987y la primera versión estable dos meses después. A finales de la década de 1980, GCC ya apoyaba casi una docena de arquitecturas; Michael Tiemann entonces parece ser el más activo con seis puertos realizados por su cuenta. Incluso se le atribuye el soporte nativo para el lenguaje C ++ desde finales de 1987, lo que convierte al compilador GNU en el primero en admitir este lenguaje. Michael Tiemann abandonó gradualmente el proyecto a principios de la década de 1990 debido a la falta de tiempo debido a sus actividades dentro de la empresa Cygnus Solutions .
En 1992 , la versión 2.0 trajo, además de numerosas optimizaciones, soporte estable para el lenguaje C ++. El proyecto parece estar entrando en una nueva era comúnmente llamada " los años Cygnus ". Este período comienza con un proceso de transición de la versión 1.42 a la nueva versión.
En 1997 , un grupo de desarrolladores encontró que el modelo de desarrollo era lento y no muy propicio para mejoras, por lo que decidieron bifurcar el proyecto y lo llamaron EGCS (para " Sistema de compilación GNU experimental / mejorado "). Tras las muchas mejoras realizadas, EGCS y GCC se unieron en abril de 1999 , la primera versión publicada es la 2.95.
GCC sigue de cerca el desarrollo de la estandarización del lenguaje y, a veces, incluso lo precede; por tanto, algunas de las funcionalidades del estándar C99 ya estaban presentes antes de la publicación oficial.
GCC es hoy en día el compilador más utilizado en la comunidad de software libre y es el compilador de muchos sistemas operativos, como GNU / Linux , BSD , Mac OS X , NeXTSTEP o incluso BeOS / Haiku .
Las versiones son establecidas por el Comité Directivo de GCC . La versión 4 compila Fortran 95 a petición de un gran número de usuarios científicos. De hecho, es en este lenguaje donde se intercambian la mayoría de las bibliotecas fuente y subrutinas científicas actuales ; Linux está muy presente en los laboratorios. Desde la versión 5, a través de OpenACC , se ha mejorado la compatibilidad con el lenguaje Fortran y la versión 6 se ha mejorado considerablemente. A principios de 2021, GFortran 10.2 implementó casi por completo el estándar Fortran 2008 y alrededor del 20% del estándar Fortran 2018.
Estas son las fechas de lanzamiento de las últimas versiones principales:
Versión | Fecha de lanzamiento |
---|---|
3,0 | 18 de junio de 2001 |
3.1 | 15 de mayo de 2002 |
3.2 | 14 de agosto de 2002 |
3.3 | 13 de mayo de 2003 |
3.4 | 18 de abril de 2004 |
3.4.6 | 6 de marzo de 2006 |
4.0 | 20 de abril de 2005 |
4.0.4 | 31 de enero de 2007 |
4.1 | 28 de febrero de 2006 |
4.1.2 | 13 de febrero de 2007 |
4.2 | 13 de mayo de 2007 |
4.2.4 | 19 de mayo de 2008 |
4.3 | 5 de marzo de 2008 |
4.3.5 | 22 de mayo de 2010 |
4.4 | 21 de abril de 2009 |
4.4.5 | 1 er de octubre de 2010 |
4.5 | 14 de abril de 2010 |
4.5.1 | 31 de julio de 2010 |
4.5.2 | 16 de diciembre de 2010 |
4.6 | 25 de marzo de 2011 |
4,7 | 22 de marzo de 2012 |
4.8 | 22 de marzo de 2013 |
4.9 | 22 de abril de 2014 |
5.1 | 22 de abril de 2015 |
5.2 | 16 de julio de 2015 |
5.3 | 4 de diciembre de 2015 |
5.4 | 3 de junio de 2016 |
6.2 | 22 agosto 2016 |
6.3 | 21 de diciembre de 2016 |
7.1 | 2 de mayo de 2017 |
7.2 | 14 de agosto de 2017 |
7.3 | 25 enero 2018 |
8.1 | 2 de mayo de 2018 |
8.2 | 14 de julio de 2018 |
8.3 | 22 de febrero de 2019 |
9.1 | 25 de abril de 2019 |
9.2 | 12 de agosto de 2019 |
9.3 | 12 de marzo de 2020 |
10.1 | 7 de mayo de 2020 |
La sintaxis básica utilizada por los compiladores de GCC es:
gcc fichierSource.c -o binairePara usar bibliotecas , la sintaxis es la siguiente:
gcc fichierSource.c -o binaire -l''bibliothèque''Muchas opciones (pasadas como parámetro) le permiten actuar sobre la compilación. GCC se usa a menudo en archivos MAKE por el programa make .
Las opciones particularmente útiles son -O1 o -O2 para decirle al compilador que optimice, -Wall para solicitar casi todos los mensajes de advertencia, -g para generar información de depuración, -c para generar un archivo objeto (sin edición de enlaces).