logo

GCC Linux

În Linux, GCC înseamnă Colecția de compilatori GNU . Este un sistem compilator pentru diferitele limbaje de programare. Este folosit în principal pentru a compila programele C și C++. Acesta ia numele programului sursă ca argument necesar; Argumentele rest sunt opționale, cum ar fi depanare, avertizare, fișier obiect și biblioteci de legătură.

GCC este o componentă de bază a lanțului de instrumente GNU. Diverse proiecte open-source sunt compilate folosind GCC, cum ar fi kernel-ul Linux și instrumentele GNU.

Este distribuit sub GPL (General Public License). Prima versiune, GCC 1.0 , a fost lansat în 1987. A fost doar pentru limbajul de programare C, dar în același an, a fost extins pentru limbaj de programare C++ . Mai târziu, a fost dezvoltat pentru alte limbaje de programare, cum ar fi Objective-C, Objective-C++, Fortran, Java , Ada, Go și multe altele. Cea mai recentă versiune are implementarea mult îmbunătățită a limbajelor de programare.

Este partenerul oficial al GNU OS; prin urmare, a fost adoptat ca compilator standard al sistemelor bazate pe Linux.

sql concat

Componentele GCC

GCC este un instrument portabil și poate rula pe multe sisteme de operare. De asemenea, poate fi portat la Windows prin utilizarea unor instrumente precum Cygwin, MinGW și MinGW-W64 . Deoarece este o componentă cheie a lanțului de instrumente GNU, conține următoarele componente pentru dezvoltarea aplicațiilor și a sistemelor de operare:

GNU Compiler Collection (GCC): Este o suită de compilatoare pentru multe limbaje, cum ar fi C/C++ și Objective-C/C++.

GNU Make: Este un instrument de automatizare care este folosit pentru a compila și a construi aplicații.

GNU Binutils: Este o suită care conține instrumente utilitare binare, cum ar fi linker și asamblator .

GNU Debugger (GDB). Este folosit pentru a depana aplicațiile.

GNU Autotools: Este un sistem de compilare care conține unele instrumente utilitare, cum ar fi Autoconf, Autoheader, Automake și Libtool.

GNU Bison: Este un generator de analiză ca lex și yacc.

Procesul compilatorului GCC

GCC compilează și face executabil un program în următorii patru pași:

GCC Linux

Preprocesare: În acest pas, preprocesorul GNU (cpp.exe) creează un fișier intermediar având codul sursă. Preprocesorul include anteturile (#include) și extinde macrocomenzile (#define). Luați în considerare comanda de mai jos:

 cpp hello.c > hello.i 

Comanda de mai sus va crea un fișier intermediar „hello.i”.

Compilare: În acest pas, codul sursă preprocesat este compilat în cod de asamblare pentru un anumit procesor.

 gcc -S hello.i 

Comanda de mai sus va crea un fișier de asamblare „hello.s.” Opțiunea „-s” este utilizată pentru a specifica acest lucru pentru a produce codul de asamblare, mai degrabă decât codul obiect.

Asamblare: Codul de asamblare este convertit în cod de mașină. Acesta va crea un fișier obiect „hello.o.”

 as -o hello.o hello.s 

Linker: Linker-ul (ld.exe) este pasul final al procesului compilatorului. Leagă codul obiect cu codul bibliotecii și produce un fișier executabil.

 ld -o hello.exe hello.o 

Comanda de mai sus va crea un fișier executabil „hello.exe”.

Instalarea GCC pe Linux

În mod implicit, vine cu cele mai multe distribuții Linux. O putem verifica executând comanda de mai jos:

 gcc -version 

Comanda de mai sus va afișa versiunea instalată a instrumentului GCC. Dacă nu este instalat, urmați pașii de mai jos pentru a-l instala:

Pasul 1: Actualizați lista de pachete.

Pentru a actualiza lista de pachete, executați următoarea comandă:

 sudo apt update 

Va cere parola de administrare a sistemului, introduceți parola. Va începe actualizarea pachetului de sistem. Luați în considerare imaginea de mai jos a ieșirii:

GCC Linux

Pasul 2: Instalați pachetul build-essential.

Conține diverse pachete, cum ar fi gcc, g++ și make utility. Executați comanda de mai jos pentru a o instala:

 sudo apt install build-essential 

Comanda de mai sus va instala pachetele necesare pentru utilitarul GCC. Acum, putem folosi utilitarul GCC în mașina noastră. Luați în considerare imaginea de mai jos a ieșirii:

GCC Linux

Pasul 3: Verificați instalarea.

Pentru a verifica instalarea, executați comanda gcc -version după cum urmează:

 gcc --version 

Acesta va afișa versiunea instalată a utilitarului GCC. Pentru a afișa detalii mai specifice despre versiune, utilizați opțiunea „-v”. Luați în considerare rezultatul de mai jos:

GCC Linux

Aici, am instalat cu succes utilitarul GCC. Să înțelegem să-l folosim. Vom crea și executa câteva programe c folosind GCC.

Rulați primul program C de către gcc

Creați un element de bază programul c 'Salut Lume!'. Creați un fișier „hello.c” și introduceți codul de mai jos în el:

 #include int main() { printf('Hello, world!
'); return 0; } 

Acum, compilați hello.c după cum urmează:

 gcc hello.c 

Dacă rulăm direct hello.c, va arunca eroarea. Faceți-l executabil, fișierul executabil implicit pentru sistemul Linux este a.out. Pentru a executa fișierul, executați comanda chmod după cum urmează:

 chmod a+x a.out 

Acum, rulați programul c ca:

 ./a.out 

Luați în considerare rezultatul de mai jos:

GCC Linux

Exemple de comandă GCC

Câteva exemple utile de comandă gcc sunt următoarele:

    Specificați numele fișierului obiect

În mod implicit, comanda gcc creează fișierul obiect ca 'a.out .' Dacă doriți să schimbați numele implicit al fișierului de ieșire, utilizați '-O' opțiune.

Să executăm comanda de bază gcc:

 gcc hello.c 

Comanda de mai sus va genera fișierul obiect 'a.out.' Pentru a specifica numele fișierului obiect, executați comanda după cum urmează:

 gcc hello.c -o hello 

Va genera fișierul de ieșire „bună ziua”. Luați în considerare rezultatul de mai jos:

logica de ordinul întâi
GCC Linux
    Activați toate avertismentele

Pentru a activa toate avertismentele din ieșire, utilizați '-Perete' opțiunea cu comanda gcc. Să creăm o variabilă în funcția principală a hello.c. Luați în considerare codul de mai jos:

buna:

 #include int main() { int a; printf('Hello, world!
'); return 0; } 

Dacă compilam codul de mai sus folosind opțiunea -Wall. Va arunca avertismentele. Executați comanda de mai jos pentru a compila fișierul:

 gcc -wall hello.c 

Comanda de mai sus va afișa avertismentele. Luați în considerare rezultatul de mai jos:

GCC Linux
    Produceți rezultatul treptat al procesului de compilare

Putem produce doar ieșirea treptată a procesului de compilare.

Produceți ieșirea preprocesorului

Putem produce numai ieșirea preprocesului utilizând opțiunea „-E”. Luați în considerare comanda de mai jos:

 gcc -E hello.c > hello.i 

Din comanda de mai sus, un fișier 'buna eu' care conține rezultate preprocesate este generată. Luați în considerare rezultatul de mai jos:

GCC Linux

Produceți codul de asamblare

Pentru a produce codul de asamblare, executați comanda cu opțiunea „-S”. Luați în considerare comanda de mai jos:

 gcc -S hello.c > hello.s 

Comanda de mai sus va genera „hello.s.” fișier care conține codul de asamblare. Luați în considerare rezultatul de mai jos:

GCC Linux

Produceți codul compilat

comutați java

Putem produce doar codul compilat folosind opțiunea „-C”. Luați în considerare comanda de mai jos:

 gcc -C hello.c 

Comanda de mai sus va genera un fișier „a.out”, având doar codul mașinii sau codul compilat. Luați în considerare rezultatul de mai jos:

GCC Linux

Produceți toate fișierele intermediare ale procesului de compilare

Putem produce toate fișierele intermediare ale procesului de compilare folosind opțiunea „-save-temp”. Luați în considerare rezultatul de mai jos:

 gcc -save-temps hello.c 

Comanda de mai sus va genera simultan toate fișierele intermediare, precum și fișierele executabile. Luați în considerare rezultatul de mai jos:

GCC Linux
    Tipăriți cu atenție rezultatul.

Putem afișa informații detaliate despre fiecare pas făcut de comanda gcc. Pentru a face acest lucru, executați comanda cu opțiunea „-v”.

 gcc -W -v hello.c 

Luați în considerare imaginea de mai jos a ieșirii:

GCC Linux

Am discutat câteva exemple utile ale comenzii gcc. Deoarece comanda gcc facilitează cu un număr mare de opțiuni, puteți rămâne blocat oriunde în timp ce o utilizați. Să vedem cum să obțineți ajutor singur de la terminal.

manualul GCC

Dacă rămâneți blocat oriunde în timp ce utilizați comanda gcc, puteți primi ajutor de la terminal. Pentru a accesa manualul din linia de comandă, executați comanda man după cum urmează:

 man gcc 

Comanda de mai sus va afișa manualul care conține o descriere și o listă a opțiunilor acceptate cu o scurtă descriere. Luați în considerare imaginea de mai jos a ieșirii:

GCC Linux

puteți derula rezultatul pentru a citi mai multe. Apăsați tasta „h” pentru ajutor și q pentru a ieși din manual și înapoi la terminal.