logo

GCC Linux

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:

GCC Linux

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:

GCC Linux

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:

GCC Linux

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:

GCC Linux

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:

GCC Linux

Esempi di comandi GCC

Alcuni esempi utili di comando gcc sono i seguenti:

    Specificare il nome del file oggetto

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:

GCC Linux
    Abilita tutti gli avvisi

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:

GCC Linux
    Produrre l'output graduale del processo di compilazione

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:

GCC Linux

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:

GCC Linux

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:

GCC Linux

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:

GCC Linux
    Stampa l'output in modo dettagliato.

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:

GCC Linux

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:

GCC Linux

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.