Col·lecció de compiladors GNU

De la Viquipèdia, l'enciclopèdia lliure.
Saltar a la navegació Saltar a la cerca
Col·lecció de compiladors GNU
programari
Logotip
Captura de pantalla d'exemple
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:

Arquitectures

Entre els processadors compatibles amb GCC (a la versió 4.1) hi ha:

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:

  1. 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;
  2. a la segona fase, el fitxer dóna lloc a un nou fitxer objecte , que encara no és executable;
  3. 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

Enllaços externs

Control de l'autoritat GND ( DE ) 4294848-4
Programari lliure Portal de programari lliure : accediu a les entrades de Viquipèdia relacionades amb programari lliure