V Linuxu GCC pomeni Zbirka prevajalnika GNU . Je sistem prevajalnika za različne programske jezike. Uporablja se predvsem za prevajanje programov C in C++. Kot nujen argument vzame ime izvornega programa; ostali argumenti so neobvezni, kot so odpravljanje napak, opozorilo, objektna datoteka in povezovalne knjižnice.
GCC je osrednja komponenta verige orodij GNU. Različni odprtokodni projekti so sestavljeni z uporabo GCC, kot so jedro Linuxa in orodja GNU.
Distribuira se pod GPL (Splošna javna licenca). Prva različica, GCC 1.0 , je izšel leta 1987. Bil je samo za programski jezik C, vendar je bil istega leta razširjen za Programski jezik C++ . Kasneje je bil razvit za druge programske jezike, kot so Objective-C, Objective-C++, Fortran, Java , Ada, Go in več. Njegova najnovejša različica ima precej izboljšano implementacijo programskih jezikov.
Je uradni partner GNU OS; zato je bil sprejet kot standardni prevajalnik sistemov, ki temeljijo na Linuxu.
string java array
Sestavine GCC
GCC je prenosno orodje in se lahko izvaja v številnih operacijskih sistemih. Prav tako ga je mogoče prenesti v Windows z uporabo nekaterih orodij, kot je npr Cygwin, MinGW in MinGW-W64 . Ker je ključna komponenta GNU toolchain, vsebuje naslednje komponente za razvoj aplikacij in operacijskih sistemov:
Zbirka prevajalnika GNU (GCC): Je zbirka prevajalnikov za številne jezike, kot sta C/C++ in Objective-C/C++.
Izdelava GNU: Je orodje za avtomatizacijo, ki se uporablja za prevajanje in izdelavo aplikacij.
GNU Binutils: Gre za zbirko, ki vsebuje binarna orodja, kot je npr povezovalec in sestavljalec .
Razhroščevalnik GNU (GDB). Uporablja se za odpravljanje napak v aplikacijah.
GNU Autotools: Gre za gradbeni sistem, ki vsebuje nekaj pripomočkov, kot so Autoconf, Autoheader, Automake in Libtool.
GNU Bison: Je generator razčlenjevalnika kot lex in yacc.
Postopek prevajalnika GCC
GCC prevede in naredi izvršljiv program v naslednjih štirih korakih:
Predhodna obdelava: V tem koraku predprocesor GNU (cpp.exe) ustvari vmesno datoteko z izvorno kodo. Predprocesor vključuje glave (#include) in razširi makre (#define). Razmislite o spodnjem ukazu:
cpp hello.c > hello.i
Zgornji ukaz bo ustvaril vmesno datoteko 'hello.i.'
Kompilacija: V tem koraku se predhodno obdelana izvorna koda prevede v zbirno kodo za določen procesor.
gcc -S hello.i
Zgornji ukaz bo ustvaril zbirno datoteko 'hello.s.' Možnost '-s' se uporablja za določitev, da se izdela zbirna koda namesto objektne kode.
Montaža: Sestavna koda se pretvori v strojno kodo. Ustvaril bo predmetno datoteko 'hello.o.'
as -o hello.o hello.s
Povezovalnik: Povezovalnik (ld.exe) je zadnji korak postopka prevajalnika. Objektno kodo poveže s kodo knjižnice in izdela izvedljivo datoteko.
ld -o hello.exe hello.o
Zgornji ukaz bo ustvaril izvršljivo datoteko 'hello.exe.'
Namestitev GCC na Linux
Privzeto je na voljo z večino distribucij Linuxa. To lahko preverimo tako, da izvedemo spodnji ukaz:
gcc -version
Zgornji ukaz bo prikazal nameščeno različico orodja GCC. Če ni nameščen, sledite spodnjim korakom, da ga namestite:
1. korak: posodobite seznam paketov.
Če želite posodobiti seznam paketov, izvedite naslednji ukaz:
sudo apt update
Zahteval bo skrbniško geslo sistema, vnesite geslo. Začel bo posodabljati sistemski paket. Razmislite o spodnjem posnetku izhoda:
2. korak: Namestite paket build-essential.
Vsebuje različne pakete, kot so gcc, g++ in pripomoček make. Izvedite spodnji ukaz, da ga namestite:
sudo apt install build-essential
Zgornji ukaz bo namestil zahtevane pakete za pripomoček GCC. Zdaj lahko uporabimo pripomoček GCC v našem računalniku. Razmislite o spodnjem posnetku izhoda:
3. korak: Preverite namestitev.
Če želite preveriti namestitev, izvedite ukaz gcc -version na naslednji način:
gcc --version
Prikazala bo nameščeno različico pripomočka GCC. Za prikaz natančnejših podrobnosti o različici uporabite možnost '-v'. Razmislite o spodnjem rezultatu:
Tukaj smo uspešno namestili pripomoček GCC. Razumejmo, kako ga uporabljati. Ustvarili in izvedli bomo nekaj programov c z uporabo GCC.
Zaženite prvi program C z gcc
Ustvarite osnovno c program 'Pozdravljen, svet!'. Ustvarite datoteko 'hello.c' in vanjo vstavite spodnjo kodo:
#include int main() { printf('Hello, world! '); return 0; }
Zdaj prevedite hello.c na naslednji način:
gcc hello.c
Če neposredno zaženemo hello.c, bo povzročil napako. Naj bo izvršljiva, privzeta izvršljiva datoteka za sistem Linux je a.out. Za izvedbo datoteke izvedite ukaz chmod na naslednji način:
chmod a+x a.out
Zdaj zaženite program c kot:
./a.out
Razmislite o spodnjem rezultatu:
Primeri ukazov GCC
Nekaj uporabnih primerov ukaza gcc je naslednjih:
četrtletja v letu
Privzeto ukaz gcc ustvari objektno datoteko kot 'a.out .' Če želite spremeniti privzeto ime izhodne datoteke, uporabite '-O' možnost.
Izvedimo osnovni ukaz gcc:
gcc hello.c
Zgornji ukaz bo ustvaril objektno datoteko 'a.out.' Če želite določiti ime objektne datoteke, izvedite ukaz na naslednji način:
gcc hello.c -o hello
Ustvaril bo izhodno datoteko 'hello.' Razmislite o spodnjem rezultatu:
Če želite omogočiti vsa opozorila v izhodu, uporabite '-Zid' možnost z ukazom gcc. Ustvarimo spremenljivko v glavni funkciji hello.c. Razmislite o spodnji kodi:
zdravo.c:
#include int main() { int a; printf('Hello, world! '); return 0; }
Če zgornjo kodo prevedemo z možnostjo -Wall. Vrglo bo opozorila. Za prevajanje datoteke izvedite spodnji ukaz:
gcc -wall hello.c
Zgornji ukaz bo prikazal opozorila. Razmislite o spodnjem rezultatu:
Izdelamo lahko samo postopni izhod postopka prevajanja.
Izdelajte izhod predprocesorja
Z možnostjo '-E' lahko ustvarimo samo izhod predprocesa. Razmislite o spodnjem ukazu:
gcc -E hello.c > hello.i
Iz zgornjega ukaza datoteka 'zdravo.i' ki vsebuje vnaprej obdelan izhod. Razmislite o spodnjem rezultatu:
Izdelajte montažno kodo
Če želite ustvariti zbirno kodo, izvedite ukaz z možnostjo '-S'. Razmislite o spodnjem ukazu:
gcc -S hello.c > hello.s
Zgornji ukaz bo ustvaril 'hello.s.' datoteko, ki vsebuje zbirno kodo. Razmislite o spodnjem rezultatu:
Izdelajte prevedeno kodo
omrežne topologije
Z možnostjo '-C' lahko ustvarimo samo prevedeno kodo. Razmislite o spodnjem ukazu:
gcc -C hello.c
Zgornji ukaz bo ustvaril datoteko 'a.out', ki bo vsebovala samo strojno kodo ali prevedeno kodo. Razmislite o spodnjem rezultatu:
Izdelajte vse vmesne datoteke postopka prevajanja
Z uporabo možnosti '-save-temp' lahko izdelamo vse vmesne datoteke procesa prevajanja. Razmislite o spodnjem rezultatu:
gcc -save-temps hello.c
Zgornji ukaz bo ustvaril vse vmesne datoteke in izvršljive datoteke hkrati. Razmislite o spodnjem rezultatu:
Prikažemo lahko podrobne informacije o vsakem koraku, ki ga naredi ukaz gcc. Če želite to narediti, izvedite ukaz z možnostjo '-v'.
gcc -W -v hello.c
Razmislite o spodnjem posnetku izhoda:
Razpravljali smo o nekaterih najbolj uporabnih primerih ukaza gcc. Ker ukaz gcc olajša z ogromnim številom možnosti, se lahko med njegovo uporabo kjerkoli zataknete. Poglejmo, kako sami dobite pomoč s terminala.
GCC priročnik
Če se vam med uporabo ukaza gcc kjer koli zatakne, si lahko pomagate s terminala. Za dostop do priročnika iz ukazne vrstice izvedite ukaz man na naslednji način:
man gcc
Zgornji ukaz prikaže priročnik, ki vsebuje opis in seznam podprtih možnosti s kratkim opisom. Razmislite o spodnjem posnetku izhoda:
lahko se pomikate po izpisu, da preberete več. Pritisnite tipko 'h' za pomoč in q za izhod iz priročnika in nazaj na terminal.