logo

GCC Linux

I Linux står GCC for GNU Compiler Collection . Det er et kompilatorsystem for de ulike programmeringsspråkene. Den brukes hovedsakelig til å kompilere C- og C++-programmene. Det tar navnet på kildeprogrammet som et nødvendig argument; rest-argumenter er valgfrie, for eksempel feilsøking, advarsel, objektfil og kobling av biblioteker.

GCC er en kjernekomponent i GNU-verktøykjeden. Ulike åpen kildekode-prosjekter er kompilert ved hjelp av GCC, for eksempel Linux-kjernen og GNU-verktøy.

Den distribueres under GPL (General Public License). Den første versjonen, GCC 1.0 , ble utgitt i 1987. Det var bare for programmeringsspråket C, men samme år ble det utvidet for C++ programmeringsspråk . Senere ble det utviklet for andre programmeringsspråk som Objective-C, Objective-C++, Fortran, Java , Ada, Go og mer. Den siste versjonen har den mye forbedrede implementeringen av programmeringsspråkene.

Det er den offisielle partneren til GNU OS; derfor har den blitt tatt i bruk som standard kompilator for Linux-baserte systemer.

img css align

Komponenter av GCC

GCC er et bærbart verktøy, og det kan kjøres på mange operativsystemer. Den kan også porteres til Windows ved å bruke noen verktøy som f.eks Cygwin, MinGW og MinGW-W64 . Siden det er en nøkkelkomponent i GNU-verktøykjeden, inneholder den følgende komponenter for utvikling av applikasjoner og operativsystemer:

GNU Compiler Collection (GCC): Det er en kompilatorsuite for mange språk, for eksempel C/C++ og Objective-C/C++.

GNU-merke: Det er et automatiseringsverktøy som brukes til å kompilere og bygge applikasjoner.

GNU Binutils: Det er en suite som inneholder binære verktøy som f.eks linker og montør .

GNU Debugger (GDB). Den brukes til å feilsøke applikasjonene.

GNU Autotools: Det er et byggesystem som inneholder noen hjelpeverktøy som Autoconf, Autoheader, Automake og Libtool.

GNU Bison: Det er en parsergenerator som lex og yacc.

GCC-kompilatorprosess

GCC kompilerer og gjør kjørbart et program i følgende fire trinn:

GCC Linux

Forbehandling: I dette trinnet oppretter GNU-forbehandleren (cpp.exe) en mellomfil med kildekoden. Forbehandleren inkluderer overskriftene (#include) og utvider makroene (#define). Tenk på kommandoen nedenfor:

 cpp hello.c > hello.i 

Kommandoen ovenfor vil opprette en mellomfil 'hello.i.'

Samling: I dette trinnet blir den forhåndsbehandlede kildekoden kompilert til monteringskode for en spesifikk prosessor.

 gcc -S hello.i 

Kommandoen ovenfor vil opprette en monteringsfil 'hello.s.' Alternativet '-s' brukes til å spesifisere det for å produsere monteringskoden i stedet for objektkode.

Montering: Monteringskoden konverteres til maskinkode. Det vil opprette en objektfil 'hello.o.'

 as -o hello.o hello.s 

Linker: Linkeren (ld.exe) er det siste trinnet i kompilatorprosessen. Den kobler objektkoden med bibliotekkoden og produserer en kjørbar fil.

 ld -o hello.exe hello.o 

Kommandoen ovenfor vil opprette en kjørbar fil 'hello.exe.'

Installasjon av GCC på Linux

Som standard kommer den med de fleste Linux-distribusjoner. Vi kan bekrefte det ved å utføre kommandoen nedenfor:

 gcc -version 

Kommandoen ovenfor viser den installerte versjonen av GCC-verktøyet. Hvis den ikke er installert, følg trinnene nedenfor for å installere den:

Trinn 1: Oppdater pakkelisten.

For å oppdatere pakkelisten, kjør følgende kommando:

 sudo apt update 

Den vil be om systemadministratorpassordet, skriv inn passordet. Det vil begynne å oppdatere systempakken. Vurder utdatabildet nedenfor:

GCC Linux

Trinn 2: Installer build-essential-pakken.

Den inneholder forskjellige pakker som gcc, g++ og make utility. Utfør kommandoen nedenfor for å installere den:

 sudo apt install build-essential 

Kommandoen ovenfor vil installere de nødvendige pakkene for GCC-verktøyet. Nå kan vi bruke GCC-verktøyet i maskinen vår. Vurder utdatabildet nedenfor:

sammenligne med java
GCC Linux

Trinn 3: Bekreft installasjonen.

For å bekrefte installasjonen, kjør kommandoen gcc -version som følger:

 gcc --version 

Den vil vise den installerte versjonen av GCC-verktøyet. For å vise mer spesifikke detaljer om versjonen, bruk '-v'-alternativet. Tenk på utgangen nedenfor:

GCC Linux

Her har vi installert GCC-verktøyet. La oss forstå å bruke det. Vi vil lage og kjøre noen c-programmer ved hjelp av GCC.

Kjør første C-program av gcc

Lag en grunnleggende c programmet 'Hei Verden!'. Opprett en fil 'hello.c' og legg inn koden nedenfor i den:

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

Nå, kompiler hello.c som følger:

 gcc hello.c 

Hvis vi kjører hello.c direkte, vil det gi feilen. Gjør den kjørbar, standard kjørbar fil for Linux-systemet er a.out. For å kjøre filen, kjør chmod-kommandoen som følger:

 chmod a+x a.out 

Kjør nå c-programmet som:

 ./a.out 

Tenk på utgangen nedenfor:

GCC Linux

Eksempler på GCC-kommandoer

Noen nyttige eksempler på gcc-kommandoen er som følger:

    Angi objektfilnavnet

Som standard oppretter gcc-kommandoen objektfilen som 'a.ut .' Hvis du vil endre standard utdatafilnavn, bruk '-O' alternativ.

La oss utføre den grunnleggende gcc-kommandoen:

 gcc hello.c 

Kommandoen ovenfor vil generere objektfilen 'a.out.' For å spesifisere objektfilnavnet, utfør kommandoen som følger:

 gcc hello.c -o hello 

Den vil generere utdatafilen 'hei'. Tenk på utgangen nedenfor:

GCC Linux
    Aktiver alle advarsler

For å aktivere alle advarsler i utgangen, bruk '-Vegg' alternativet med gcc-kommandoen. La oss lage en variabel i hovedfunksjonen til hello.c. Tenk på koden nedenfor:

Hei C:

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

Hvis vi kompilerer koden ovenfor ved å bruke -Wall-alternativet. Det vil kaste advarslene. Utfør kommandoen nedenfor for å kompilere filen:

 gcc -wall hello.c 

Kommandoen ovenfor vil vise advarslene. Tenk på utgangen nedenfor:

GCC Linux
    Produser den trinnvise utgangen av kompileringsprosessen

Vi kan bare produsere trinnvise utdata fra kompileringsprosessen.

Produser forprosessorutgangen

Vi kan kun produsere forprosessen ved å bruke '-E'-alternativet. Tenk på kommandoen nedenfor:

 gcc -E hello.c > hello.i 

Fra kommandoen ovenfor, en fil 'Hei jeg' som inneholder forhåndsbehandlet utdata genereres. Tenk på utgangen nedenfor:

GCC Linux

Lag monteringskoden

For å produsere monteringskoden, utfør kommandoen med alternativet '-S'. Tenk på kommandoen nedenfor:

 gcc -S hello.c > hello.s 

Kommandoen ovenfor vil generere 'hello.s.' fil som inneholder monteringskoden. Tenk på utgangen nedenfor:

GCC Linux

Lag den kompilerte koden

10 av 1 million

Vi kan bare produsere den kompilerte koden ved å bruke alternativet '-C'. Tenk på kommandoen nedenfor:

 gcc -C hello.c 

Kommandoen ovenfor vil generere en fil 'a.out', som bare har maskinkoden eller den kompilerte koden. Tenk på utgangen nedenfor:

GCC Linux

Produser alle mellomfilene i kompileringsprosessen

Vi kan produsere alle mellomfilene i kompileringsprosessen ved å bruke '-save-temp'-alternativet. Tenk på utgangen nedenfor:

 gcc -save-temps hello.c 

Kommandoen ovenfor vil generere alle mellomfilene så vel som kjørbare filer på en gang. Tenk på utgangen nedenfor:

GCC Linux
    Skriv ut utdataene grundig.

Vi kan vise detaljert informasjon om hvert trinn tatt av gcc-kommandoen. For å gjøre det, utfør kommandoen med alternativet '-v'.

 gcc -W -v hello.c 

Vurder utdatabildet nedenfor:

GCC Linux

Vi har diskutert noen mest nyttige eksempler på gcc-kommandoen. Siden gcc-kommandoen forenkler med et stort antall alternativer, kan du bli sittende fast hvor som helst mens du bruker den. La oss se hvordan du kan få hjelp selv fra terminalen.

GCC manual

Hvis du blir sittende fast hvor som helst mens du bruker gcc-kommandoen, kan du ta hjelp fra terminalen din. For å få tilgang til håndboken fra kommandolinjen, utfør man-kommandoen som følger:

 man gcc 

Kommandoen ovenfor vil vise håndboken som inneholder en beskrivelse og liste over de støttede alternativene med en kort beskrivelse. Vurder utdatabildet nedenfor:

GCC Linux

du kan bla i utgangen for å lese mer. Trykk 'h'-tasten for hjelp og q for å gå ut av manualen og tilbake til terminalen.