U Linuxu, GCC je kratica za Zbirka GNU prevoditelja . To je sustav prevoditelja za različite programske jezike. Uglavnom se koristi za prevođenje C i C++ programa. Uzima ime izvornog programa kao nužan argument; ostali argumenti su izborni kao što su debugging, warning, object file i linking libraries.
GCC je ključna komponenta GNU alatnog lanca. Različiti projekti otvorenog koda kompajlirani su pomoću GCC-a, kao što su Linux kernel i GNU alati.
Distribuira se pod GPL (Opća javna licenca). Prva verzija, GCC 1.0 , objavljen je 1987. Bio je samo za programski jezik C, ali je iste godine proširen za C++ programski jezik . Kasnije je razvijen za druge programske jezike kao što su Objective-C, Objective-C++, Fortran, Java , Ada, Go i više. Njegova najnovija verzija ima znatno poboljšanu implementaciju programskih jezika.
Službeni je partner GNU OS-a; stoga je usvojen kao standardni prevodilac sustava temeljenih na Linuxu.
umjetna neuronska mreža
Komponente GCC-a
GCC je prijenosni alat i može raditi na mnogim operativnim sustavima. Također, može se prenijeti na Windows korištenjem nekih alata kao što su Cygwin, MinGW i MinGW-W64 . Budući da je ključna komponenta GNU alatnog lanca, sadrži sljedeće komponente za razvoj aplikacija i operativnih sustava:
Zbirka GNU prevoditelja (GCC): To je skup prevoditelja za mnoge jezike, kao što su C/C++ i Objective-C/C++.
GNU Make: To je alat za automatizaciju koji se koristi za kompajliranje i izradu aplikacija.
GNU Binutils: To je paket koji sadrži binarne uslužne alate kao što su povezivač i asembler .
GNU Debugger (GDB). Koristi se za otklanjanje pogrešaka u aplikacijama.
GNU Autotools: To je sustav za izgradnju koji sadrži neke uslužne alate kao što su Autoconf, Autoheader, Automake i Libtool.
GNU Bison: To je parser generator kao lex i yacc.
Proces GCC prevoditelja
GCC kompajlira i čini izvršni program u sljedeća četiri koraka:
Predobrada: U ovom koraku, GNU predprocesor (cpp.exe) stvara međudatoteku s izvornim kodom. Predprocesor uključuje zaglavlja (#include) i proširuje makronaredbe (#define). Razmotrite naredbu u nastavku:
cpp hello.c > hello.i
Gornja naredba će stvoriti međudatoteku 'hello.i.'
Kompilacija: U ovom koraku, prethodno obrađeni izvorni kod kompajlira se u sklopovni kod za određeni procesor.
gcc -S hello.i
Gornja naredba će stvoriti datoteku sklopa 'hello.s.' Opcija '-s' koristi se za specificiranje da se proizvede montažni kod umjesto objektnog koda.
Skupština: Asemblerski kod se pretvara u strojni kod. Stvorit će objektnu datoteku 'hello.o.'
as -o hello.o hello.s
Povezivač: Linker (ld.exe) je posljednji korak procesa prevodioca. Povezuje objektni kod s kodom knjižnice i proizvodi izvršnu datoteku.
ld -o hello.exe hello.o
Gornja naredba će stvoriti izvršnu datoteku 'hello.exe.'
Instalacija GCC-a na Linux
Prema zadanim postavkama dolazi s većinom distribucija Linuxa. To možemo provjeriti izvršavanjem naredbe ispod:
gcc -version
Gornja naredba prikazat će instaliranu verziju GCC alata. Ako nije instaliran, slijedite korake u nastavku da biste ga instalirali:
Korak 1: Ažurirajte popis paketa.
Za ažuriranje popisa paketa, izvršite sljedeću naredbu:
sudo apt update
Tražit će administrativnu lozinku sustava, unesite lozinku. Započet će ažuriranje paketa sustava. Razmotrite donji snimak izlaza:
Korak 2: Instalirajte paket build-essential.
Sadrži razne pakete kao što su gcc, g++ i make utility. Izvršite naredbu u nastavku da biste ga instalirali:
sudo apt install build-essential
Gornja naredba će instalirati potrebne pakete za GCC uslužni program. Sada možemo koristiti GCC uslužni program na našem stroju. Razmotrite donji snimak izlaza:
Korak 3: Provjerite instalaciju.
Za provjeru instalacije, izvršite naredbu gcc -version na sljedeći način:
javascript onload skripta
gcc --version
Prikazat će instaliranu verziju uslužnog programa GCC. Za prikaz detaljnijih pojedinosti o verziji upotrijebite opciju '-v'. Razmotrite donji izlaz:
Ovdje smo uspješno instalirali GCC uslužni program. Shvatimo kako ga koristiti. Napravit ćemo i izvršiti neke c programe koristeći GCC.
Pokrenite prvi C program pomoću gcc
Stvorite osnovnu c program 'Pozdrav svijete!'. Napravite datoteku 'hello.c' i u nju stavite donji kod:
#include int main() { printf('Hello, world! '); return 0; }
Sada kompajlirajte hello.c na sljedeći način:
gcc hello.c
Ako izravno pokrenemo hello.c, izbacit će pogrešku. Neka bude izvršna, zadana izvršna datoteka za Linux sustav je a.out. Da biste izvršili datoteku, izvršite naredbu chmod na sljedeći način:
chmod a+x a.out
Sada pokrenite c program kao:
./a.out
Razmotrite donji izlaz:
GCC naredba Primjeri
Neki korisni primjeri gcc naredbe su sljedeći:
Prema zadanim postavkama, naredba gcc stvara objektnu datoteku kao 'a.out .' Ako želite promijeniti zadani naziv izlazne datoteke, koristite '-O' opcija.
Izvršimo osnovnu gcc naredbu:
gcc hello.c
Gornja naredba će generirati objektnu datoteku 'a.out.' Da biste odredili naziv datoteke objekta, izvršite naredbu na sljedeći način:
gcc hello.c -o hello
Generirati će izlaznu datoteku 'hello'. Razmotrite donji izlaz:
Da biste omogućili sva upozorenja u izlazu, koristite '-Zid' opciju s gcc naredbom. Kreirajmo varijablu u glavnoj funkciji hello.c. Razmotrite donji kôd:
zdravo.c:
#include int main() { int a; printf('Hello, world! '); return 0; }
Ako kompajliramo gornji kod pomoću opcije -Wall. Bacit će upozorenja. Izvršite donju naredbu za kompajliranje datoteke:
gcc -wall hello.c
Gornja naredba će prikazati upozorenja. Razmotrite donji izlaz:
Možemo proizvesti samo postupni izlaz procesa kompilacije.
Izradite izlaz pretprocesora
Možemo proizvesti samo izlaz predprocesa pomoću opcije '-E'. Razmotrite naredbu u nastavku:
gcc -E hello.c > hello.i
Iz gornje naredbe, datoteka 'zdravo ja' koji sadrži prethodno obrađeni izlaz se generira. Razmotrite donji izlaz:
Izradite sklopovni kod
Za izradu asemblerskog koda, izvršite naredbu s '-S' opcijom. Razmotrite naredbu u nastavku:
gcc -S hello.c > hello.s
Gornja naredba će generirati 'hello.s.' datoteku koja sadrži sklopovni kod. Razmotrite donji izlaz:
Izradite kompilirani kod
apstraktna klasa java
Možemo proizvesti samo kompajlirani kod korištenjem opcije '-C'. Razmotrite naredbu u nastavku:
gcc -C hello.c
Gornja naredba će generirati datoteku 'a.out' koja sadrži samo strojni kod ili kompajlirani kod. Razmotrite donji izlaz:
Izradite sve posredne datoteke procesa kompilacije
Možemo proizvesti sve posredne datoteke procesa kompilacije korištenjem opcije '-save-temp'. Razmotrite donji izlaz:
gcc -save-temps hello.c
Gornja naredba će generirati sve međudatoteke kao i izvršne datoteke odjednom. Razmotrite donji izlaz:
Možemo prikazati opširne informacije o svakom koraku koji poduzima naredba gcc. Da biste to učinili, izvršite naredbu s opcijom '-v'.
gcc -W -v hello.c
Razmotrite donji snimak izlaza:
Raspravljali smo o nekim najkorisnijim primjerima naredbe gcc. Budući da naredba gcc olakšava s velikim brojem opcija, možete zapeti bilo gdje dok je koristite. Pogledajmo kako sami dobiti pomoć s terminala.
GCC priručnik
Ako bilo gdje zapnete dok koristite naredbu gcc, možete zatražiti pomoć od svog terminala. Za pristup priručniku iz naredbenog retka, izvršite naredbu man na sljedeći način:
man gcc
Gornja naredba prikazat će priručnik koji sadrži opis i popis podržanih opcija s kratkim opisom. Razmotrite donji snimak izlaza:
možete pomicati izlaz da biste pročitali više. Pritisnite tipku 'h' za pomoć i q za izlaz iz priručnika i povratak na terminal.