logo

GCC Linux

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:

GCC Linux

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:

GCC Linux

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:

GCC Linux

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:

GCC Linux

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 Linux

GCC naredba Primjeri

Neki korisni primjeri gcc naredbe su sljedeći:

    Navedite naziv datoteke objekta

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:

GCC Linux
    Omogući sva upozorenja

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:

GCC Linux
    Izradite postupni izlaz procesa kompilacije

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:

GCC Linux

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:

GCC Linux

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:

GCC Linux

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:

GCC Linux
    Ispis ispisa verbose.

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:

GCC Linux

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:

GCC Linux

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.