Col·lecció de compiladors GNU
Col·lecció de compiladors GNU programari | |
---|---|
Tipus | Compilador |
Desenvolupador | Projecte GNU |
Data de la primera versió | 23 de maig de 1987 |
Última versió | 11.2 (28 de juliol de 2021) |
Sistema operatiu | Multiplataforma |
Llenguatge | C ++ |
Kit d'eines | interfície de línia d'ordres |
Llicència | GNU GPL ( llicència gratuïta ) |
Lloc web | gcc.gnu.org |
GCC ( GNU Compiler Collection , originalment GNU C Compiler ) és un compilador multiplataforma creat inicialment pel fundador de la Free Software Foundation , Richard Matthew Stallman , com a part del Projecte GNU . Les versions recents s’inclouen a les distribucions principals del sistema operatiu GNU / Linux i molts altres sistemes, mentre que a macOS no s’instal·la per defecte, però forma part del paquet Xcode (a partir de la versió 5.0 de Xcode hi ha un altre compilador, llvm que substitueix completament gcc).
Inicialment nascut com a compilador del llenguatge C , ara té diversos front-ends per a altres llenguatges, inclosos Java , C ++ , Objective C , Fortran i Ada , i diversos back-end que són capaços de generar llenguatges de màquina per a molts. arquitectures , incloent x86 , x86-64 , ARM , IA-64 , PowerPC , s390 , SPARC .
Història
GCC va ser creat el 1987 per Richard Stallman com a part del sistema GNU, que necessitava un compilador que fos programari lliure. El seu desenvolupament va ser seguit de prop per la Free Software Foundation .
El 1997 un grup de desenvolupadors insatisfets amb la naturalesa tancada dels desenvolupaments i el seu ritme massa lent van crear el projecte EGCS ( Experimental / Enhanced GNU Compiler System ), que va incorporar diverses forquilles experimentals en una sola línia de desenvolupament, independent de GCC. El desenvolupament d' EGCS es va demostrar prou viable i a l'abril de 1999 EGCS va passar a l'estatus de la versió oficial del CCG. [1] [2]
GCC està sent desenvolupat ara per programadors de tot el món i s’ha portat a més tipus de processadors i sistemes operatius que qualsevol altre compilador.
A més de ser el compilador oficial del sistema GNU , que inclou variants de GNU / Linux , GCC ha estat adoptat com el principal compilador per crear i desenvolupar diversos altres sistemes operatius, com ara diversos BSD , macOS , NeXTSTEP i BeOS i DOS a través de la seva Port DJGPP.
Idiomes
La versió estàndard del compilador inclou les portades dels idiomes:
- Ada (GCC per Ada, també conegut com a GNAT )
- C.
- C ++ (GCC per a C ++ o G ++ )
- Fortran (GCC per Fortran o gfortran )
- Java (GCC per Java o GCJ )
- Objectiu-C
- Objectiu-C ++
- Vés (GCCGO)
Arquitectures
Entre els processadors compatibles amb GCC (a la versió 4.1) hi ha:
- Alfa
- BRAÇ
- AVR i AVR32
- Aleta negra
- H8 / 300
- System / 370 , System / 390
- IA-32 ( x86 )
- EM64T , AMD64 (x64)
- IA-64 ( Itanium )
- Motorola 68000
- Motorola 88000
- MIPS
- PA-RISC
- PDP-11
- PowerPC
- SuperH
- SPARC
- VAX
- Famílies Renesas R8C / M16C / M32C
- la família MorphoSys
En algunes versions estàndard, processadors menys coneguts també han estat recolzats, incloent A29K , ARC , Atmel AVR , C4X , CRIS , D30V , DSP16xx , FR-30 , FR-V , Intel i960 , IP2000 , M32R , 68HC11 , MCORE , MMIX , MN10200 , MN10300 , NS32K , ROMP , Stormy16 , V850 i Xtensa . Altres processadors, com D10V , PDP-10 , MicroBlaze i Z8000 , eren compatibles amb versions de GCC desenvolupades per separat de la versió de la Free Software Foundation.
SDCC (compilador de petits dispositius C)
El SDCC ( Small Devices C Compiler ) és un port de codi obert només per als microcontroladors de les famílies Z80 , 8051 , 68HC11 , Pic s’ha separat del projecte GCC per tal d’optimitzar millor el treball dels microcontroladors , on una gran eficiència del compilador i al mateix temps, viu en un entorn molt pobre en recursos RAM i ROM , amb interfícies personalitzades i equipats amb registres especials incompatibles amb el processament.
Tot i el reduït nombre d'objectius disponibles, el compilador està molt ben valorat i en la majoria de les situacions dóna millors resultats que els sistemes de desenvolupament professional remunerats.
Està disponible a la reposició Synaptic
Ús i funcionament
GCC, com a compilador, té com a finalitat principal la traducció del codi font a codi de màquina executable.
Per exemple, per compilar un fitxer de codi font escrit en C, podeu executar gcc donant-li com a entrada el fitxer desitjat. Hi ha un gran nombre de paràmetres que es poden passar al compilador per gestionar els diversos aspectes i detalls del procés de generació de codi; l'únic obligatori és el nom del fitxer a emplenar.
Un exemple de compilació elemental és l'ordre
gcc main.c
que indica al compilador que llegeixi el fitxer main.c
( .c
és l' extensió estàndard dels fitxers que contenen codi C ) i que el compili. Com que no s'ha especificat cap nom de fitxer de sortida mitjançant el paràmetre -o
, el fitxer executable s'anomena a.out
.
La compilació es realitza en tres fases:
- el fitxer a compilar el gestiona el preprocessador , que analitza les directrius escrites per al compilador (definides en algunes línies del codi, generalment situades a la part superior del fitxer i precedides pel caràcter
#
). Si s'executa amb el paràmetre-E
, gcc només realitza aquest pas, proporcionant el resultat de les activitats del preprocessador com a sortida; - a la segona fase, el fitxer dóna lloc a un nou fitxer objecte , que encara no és executable;
- en aquest moment entra en funcionament l' enllaçador que produeix un únic fitxer executable , que conté tot, que uneix tots els fitxers objecte i els fitxers de la biblioteca . Si no voleu incrustar el codi de la biblioteca al fitxer executable, podeu utilitzar l'enllaç dinàmic .
Nota
Altres projectes
-
Wikimedia Commons conté imatges o altres fitxers sobre la col·lecció de compiladors GNU
Enllaços externs
- ( EN )Lloc oficial , a gcc.gnu.org .
- Col·lecció de compiladors GNU , a packages.debian.org .
- Dipòsit font de la col·lecció GNU Compiler , a gcc.gnu.org .
- Lloc d’informació d’errors , a gcc.gnu.org .
- ( EN ) GNU Compiler Collection , al Directori de programari lliure .
- Una introducció a GCC , a network-theory.co.uk . Consultat el 16 de maig de 2010 (arxivat de l' original el 31 de maig de 2010) .
Control de l'autoritat | GND ( DE ) 4294848-4 |
---|