GNU Compiler Collection

compilatore multipiattaforma creato inizialmente dal fondatore della Free Software Foundation, Richard Stallman

Template:Stub software libero Template:Infobox Software

La GNU Compiler Collection (solitamente abbreviata in GCC) è un insieme di compilatori creato inizialmente dall'hacker americano Richard Stallman come parte del Sistema GNU, un sistema operativo libero compatibile con Unix. Le versioni recenti di GCC, sviluppate dalla comunità Open Source, sono incorporate nelle principali distribuzioni del sistema operativo GNU/Linux, e di molti altri sistemi basati su fondamenta Unix, come per esempio Mac OS X.

Nata inizialmente come un compilatore per il linguaggio C (il nome in origine era GNU C Compiler), GCC dispone oggi di vari front end per altri linguaggi, tra cui Java, C++ , Objective_C ,Fortran e Ada, ed è in grado di generare eseguibili per molte architetture, tra le quali x86 (intel compatibili), x86 a 64 bit (AMD/intel a 64 bit), PowerPC, s390 (IBM), Sparc (Sun Microsystems).

L'ultima versione rilasciata è la 4.1.2

Storia

La GCC è stata creata nel 1987 da Richard Stallman come parte del sistema GNU, che aveva bisogno di un compilatore che fosse software libero. Il suo sviluppo è stato seguito da vicino dalla Free Software Foundation.

Nel 1997 un gruppo di sviluppatori insoddisfatti dalla natura chiusa degli sviluppi e dal loro ritmo troppo lento ha creato il progetto EGCS (Experimental/Enhanced GNU Compiler System), che incorporava diversi fork sperimentali in una linea di sviluppo unica, separata da GCC. Lo sviluppo di EGCS si è dimostrato sufficientemente vitale, e nell'aprile del 1999 EGCS è stato promosso al rango di versione ufficiale di GCC.

La GCC viene oggi mantenuta da programmatori in ogni parte del mondo, ed è stata portata su più tipi di processori e sistemi operativi di qualsiasi altro compilatore.

Oltre a essere il compilatore ufficiale del sistema GNU, incluse le varianti di GNU/Linux, la GCC è stata adottata come compilatore principale per la creazione e lo sviluppo di diversi altri sistemi operativi, come i vari BSD, Mac OS X, NeXTSTEP e BeOS.

Utilizzo e funzionamento

Il gcc è un compilatore che permette in modo potente di creare eseguibili. gcc è il comando che richiama il compilatore. -o nome_file è un opzioni che permette di specificare al gcc quale file deve andare a compilatore. Ovviamente si scrive in linguaggio C dunque i file dovranno avere l'estensione .c

La compilazione avviene in tre differenti fasi:

  1. il file da compilare viene trattato dal preprocessore (analizza le direttive scritte per il compilatore solitamente sono quelle righe che iniziano con il carattere #). Utilizzando il parametro -E si vedrà l'output del preprocessore
 gcc -E nome_file.c
  1. nella seconda fase il file da origine ad un nuovo file formato oggetto che non è ancora eseguibile
  2. a questo punto entra in funzione il linker che unendo tutti i file oggetto (anche i file delle librerie lo sono) produce un file eseguibile contenente il tutto. Se si vuole creare un file da riutilizzare come libreria in altre sezioni del codice bisogna nominarlo .h in modo che venga compilato come oggetto.

Utilizzo e funzionamento

E' possibile ottimizzare la compilazione mediante l' utilizzo delle CFLAGS e CXXFLAGS