In Linux, GCC sta per Raccolta del compilatore GNU . È un sistema di compilazione per i vari linguaggi di programmazione. Viene utilizzato principalmente per compilare programmi C e C++. Prende il nome del programma sorgente come argomento necessario; gli argomenti rest sono facoltativi come debug, avviso, file oggetto e collegamento di librerie.
GCC è un componente fondamentale della toolchain GNU. Vari progetti open source vengono compilati utilizzando GCC, come il kernel Linux e gli strumenti GNU.
È distribuito sotto licenza GPL (General Public License). La prima versione, CCG 1.0 , è stato rilasciato nel 1987. Era solo per il linguaggio di programmazione C, ma nello stesso anno è stato esteso al linguaggio di programmazione Linguaggio di programmazione C++ . Successivamente è stato sviluppato per altri linguaggi di programmazione come Objective-C, Objective-C++, Fortran, Giava , Ada, Vai e altro ancora. La sua ultima versione ha un'implementazione molto migliorata dei linguaggi di programmazione.
È il partner ufficiale del sistema operativo GNU; pertanto è stato adottato come compilatore standard dei sistemi basati su Linux.
sonno Java
Componenti del GCC
GCC è uno strumento portatile e può essere eseguito su molti sistemi operativi. Inoltre, può essere portato su finestre utilizzando alcuni strumenti come Cygwin, MinGW e MinGW-W64 . Essendo un componente chiave della toolchain GNU, contiene i seguenti componenti per lo sviluppo di applicazioni e sistemi operativi:
Raccolta del compilatore GNU (GCC): È una suite di compilatori per molti linguaggi, come C/C++ e Objective-C/C++.
Marca GNU: È uno strumento di automazione utilizzato per compilare e creare applicazioni.
Binutil GNU: È una suite che contiene strumenti di utilità binaria come linker E assemblatore .
Debug GNU (GDB). Viene utilizzato per eseguire il debug delle applicazioni.
Strumenti automatici GNU: È un sistema di compilazione che contiene alcuni strumenti di utilità come Autoconf, Autoheader, Automake e Libtool.
Bisonte GNU: È un generatore di parser come lex e yacc.
Processo di compilazione GCC
Il GCC compila e rende eseguibile un programma nei seguenti quattro passaggi:
Pre-elaborazione: In questo passaggio, il preprocessore GNU (cpp.exe) crea un file intermedio contenente il codice sorgente. Il preprocessore include le intestazioni (#include) ed espande le macro (#define). Considera il comando seguente:
cpp hello.c > hello.i
Il comando precedente creerà un file intermedio 'ciao.i.'
Compilazione: In questa fase, il codice sorgente preelaborato viene compilato in codice assembly per un processore specifico.
gcc -S hello.i
Il comando precedente creerà un file assembly 'ciao.s.' L'opzione '-s' viene utilizzata per specificare che produrre il codice assembly anziché il codice oggetto.
Assemblea: Il codice assembly viene convertito in codice macchina. Creerà un file oggetto 'ciao.o.'
as -o hello.o hello.s
Collegamento: Il Linker (ld.exe) è il passaggio finale del processo di compilazione. Collega il codice oggetto con il codice della libreria e produce un file eseguibile.
ld -o hello.exe hello.o
Il comando precedente creerà un file eseguibile 'ciao.exe'.
Installazione di GCC su Linux
Per impostazione predefinita, viene fornito con la maggior parte delle distribuzioni Linux. Possiamo verificarlo eseguendo il comando seguente:
gcc -version
Il comando precedente visualizzerà la versione installata dello strumento GCC. Se non è installato, seguire i passaggi seguenti per installarlo:
Passaggio 1: aggiorna l'elenco dei pacchetti.
Java comparabile
Per aggiornare l'elenco dei pacchetti, eseguire il comando seguente:
sudo apt update
Richiederà la password amministrativa del sistema, inserire la password. Inizierà ad aggiornare il pacchetto di sistema. Considera lo snap dell'output seguente:
Passaggio 2: installa il pacchetto build-essential.
Contiene vari pacchetti come gcc, g++ e l'utilità make. Eseguire il comando seguente per installarlo:
sudo apt install build-essential
Il comando precedente installerà i pacchetti richiesti per l'utilità GCC. Ora possiamo utilizzare l'utilità GCC sulla nostra macchina. Considera lo snap dell'output seguente:
Passaggio 3: verificare l'installazione.
Per verificare l'installazione, eseguire il comando gcc -version come segue:
gcc --version
Verrà visualizzata la versione installata dell'utilità GCC. Per visualizzare dettagli più specifici sulla versione, utilizzare l'opzione '-v'. Considera l'output seguente:
Qui abbiamo installato con successo l'utilità GCC. Capiamo come usarlo. Creeremo ed eseguiremo alcuni programmi C utilizzando GCC.
Esegui il primo programma C con gcc
Crea una base programma c 'Ciao mondo!'. Crea un file 'ciao.c' e inserisci il codice seguente:
#include int main() { printf('Hello, world! '); return 0; }
Ora compila hello.c come segue:
gcc hello.c
Se eseguiamo direttamente hello.c, genererà l'errore. Rendilo eseguibile, il file eseguibile predefinito per il sistema Linux è a.out. Per eseguire il file, eseguire il comando chmod come segue:
chmod a+x a.out
Ora esegui il programma c come:
./a.out
Considera l'output seguente:
Esempi di comandi GCC
Alcuni esempi utili di comando gcc sono i seguenti:
Per impostazione predefinita, il comando gcc crea il file oggetto come 'a.out .' Se desideri modificare il nome del file di output predefinito, utilizza il file '-O' opzione.
Eseguiamo il comando gcc di base:
gcc hello.c
Il comando precedente genererà il file oggetto 'a.out.' Per specificare il nome del file oggetto, eseguire il comando come segue:
gcc hello.c -o hello
Verrà generato il file di output 'ciao'. Considera l'output seguente:
Per abilitare tutti gli avvisi nell'output, utilizzare il file '-Parete' opzione con il comando gcc. Creiamo una variabile nella funzione principale di ciao.c. Considera il codice seguente:
Ciao C:
#include int main() { int a; printf('Hello, world! '); return 0; }
Se compiliamo il codice sopra usando l'opzione -Wall. Lancerà gli avvertimenti. Eseguire il comando seguente per compilare il file:
gcc -wall hello.c
Il comando precedente visualizzerà gli avvisi. Considera l'output seguente:
Possiamo solo produrre l'output graduale del processo di compilazione.
Produrre l'output del preprocessore
Possiamo produrre solo l'output di preelaborazione utilizzando l'opzione '-E'. Considera il comando seguente:
gcc -E hello.c > hello.i
Dal comando precedente, un file 'ciao.i' che contiene l'output preelaborato viene generato. Considera l'output seguente:
Produrre il codice assembly
Per produrre il codice assembly, esegui il comando con l'opzione '-S'. Considera il comando seguente:
gcc -S hello.c > hello.s
Il comando precedente genererà il messaggio 'hello.s.' file che contiene il codice assembly. Considera l'output seguente:
Produrre il codice compilato
decomprimere in Linux
Possiamo produrre solo il codice compilato utilizzando l'opzione '-C'. Considera il comando seguente:
gcc -C hello.c
Il comando precedente genererà un file 'a.out', contenente solo il codice macchina o il codice compilato. Considera l'output seguente:
Produrre tutti i file intermedi del processo di compilazione
Possiamo produrre tutti i file intermedi del processo di compilazione utilizzando l'opzione '-save-temp'. Considera l'output seguente:
gcc -save-temps hello.c
Il comando precedente genererà tutti i file intermedi e i file eseguibili contemporaneamente. Considera l'output seguente:
Possiamo visualizzare informazioni dettagliate su ogni passaggio eseguito dal comando gcc. Per fare ciò, esegui il comando con l'opzione '-v'.
gcc -W -v hello.c
Considera lo snap dell'output seguente:
Abbiamo discusso alcuni esempi più utili del comando gcc. Poiché il comando gcc facilita con un numero enorme di opzioni, puoi rimanere bloccato ovunque mentre lo usi. Vediamo come farsi aiutare da soli dal terminale.
Manuale del GCC
Se rimani bloccato ovunque mentre usi il comando gcc, puoi ricevere aiuto dal tuo terminale. Per accedere al manuale dalla riga di comando, eseguire il comando man come segue:
man gcc
Il comando precedente visualizzerà il manuale che contiene una descrizione e un elenco delle opzioni supportate con una breve descrizione. Considera lo snap dell'output seguente:
puoi scorrere l'output per saperne di più. Premi il tasto 'h' per ricevere aiuto e q per uscire dal manuale e tornare al terminale.