Linuxissa GCC tarkoittaa GNU Compiler Collection . Se on kääntäjäjärjestelmä eri ohjelmointikielille. Sitä käytetään pääasiassa C- ja C++-ohjelmien kääntämiseen. Se ottaa lähdeohjelman nimen välttämättömänä argumenttina; rest-argumentit ovat valinnaisia, kuten virheenkorjaus, varoitus, objektitiedosto ja kirjastojen linkittäminen.
GCC on GNU-työkaluketjun ydinkomponentti. GCC:tä käyttäen kootaan erilaisia avoimen lähdekoodin projekteja, kuten Linux-ytimen ja GNU-työkaluja.
Sitä jaetaan GPL-lisenssillä (General Public License). Ensimmäinen versio, GCC 1.0 , julkaistiin vuonna 1987. Se oli tarkoitettu vain C-ohjelmointikielelle, mutta samana vuonna sitä laajennettiin C++ ohjelmointikieli . Myöhemmin se kehitettiin muille ohjelmointikielille, kuten Objective-C, Objective-C++, Fortran, Java , Ada, Go ja paljon muuta. Sen uusimmassa versiossa on paljon paranneltu ohjelmointikielten toteutus.
Se on GNU OS:n virallinen kumppani; siksi se on hyväksytty Linux-pohjaisten järjestelmien vakiokääntäjäksi.
javafx
GCC:n osat
GCC on kannettava työkalu, ja sitä voidaan käyttää useissa käyttöjärjestelmissä. Lisäksi se voidaan siirtää Windows käyttämällä joitain työkaluja, kuten Cygwin, MinGW ja MinGW-W64 . Koska se on GNU-työkaluketjun avainkomponentti, se sisältää seuraavat komponentit sovellusten ja käyttöjärjestelmien kehittämiseen:
GNU Compiler Collection (GCC): Se on käännöspaketti monille kielille, kuten C/C++ ja Objective-C/C++.
GNU merkki: Se on automaatiotyökalu, jota käytetään sovellusten kokoamiseen ja rakentamiseen.
GNU Binutils: Se on sarja, joka sisältää binäärityökaluja, kuten linkittäjä ja kokoaja .
GNU Debugger (GDB). Sitä käytetään sovellusten virheenkorjaukseen.
GNU Autotools: Se on koontijärjestelmä, joka sisältää joitain aputyökaluja, kuten Autoconf, Autoheader, Automake ja Libtool.
GNU Bison: Se on jäsennysgeneraattori kuten lex ja yacc.
GCC-kääntäjäprosessi
GCC kokoaa ohjelman ja tekee siitä suoritettavan seuraavissa neljässä vaiheessa:
Esikäsittely: Tässä vaiheessa GNU-esiprosessori (cpp.exe) luo välitiedoston, jossa on lähdekoodi. Esiprosessori sisältää otsikot (#include) ja laajentaa makrot (#define). Harkitse alla olevaa komentoa:
cpp hello.c > hello.i
Yllä oleva komento luo välitiedoston hello.i.
Kokoonpano: Tässä vaiheessa esikäsitelty lähdekoodi käännetään tietyn prosessorin kokoonpanokoodiksi.
gcc -S hello.i
Yllä oleva komento luo kokoonpanotiedoston 'hello.s.' '-s'-vaihtoehtoa käytetään määrittämään, että tuotetaan kokoonpanokoodi objektikoodin sijaan.
Kokoonpano: Kokoonpanokoodi muunnetaan konekoodiksi. Se luo objektitiedoston 'hello.o.'
as -o hello.o hello.s
Linkki: Linker (ld.exe) on kääntäjäprosessin viimeinen vaihe. Se linkittää objektikoodin kirjastokoodiin ja tuottaa suoritettavan tiedoston.
ld -o hello.exe hello.o
Yllä oleva komento luo suoritettavan tiedoston hello.exe.
GCC:n asennus Linuxiin
Oletuksena sen mukana tulee useimmat Linux-jakelut. Voimme varmistaa sen suorittamalla alla olevan komennon:
gcc -version
Yllä oleva komento näyttää GCC-työkalun asennetun version. Jos sitä ei ole asennettu, asenna se seuraavien ohjeiden mukaan:
Vaihe 1: Päivitä pakettiluettelo.
Päivitä pakettiluettelo suorittamalla seuraava komento:
sudo apt update
Se kysyy järjestelmänvalvojan salasanaa, kirjoita salasana. Se alkaa päivittää järjestelmäpakettia. Harkitse alla olevaa lähtökohtaa:
Vaihe 2: Asenna build-essential-paketti.
Se sisältää erilaisia paketteja, kuten gcc, g++ ja make-apuohjelma. Asenna se suorittamalla alla oleva komento:
sudo apt install build-essential
Yllä oleva komento asentaa tarvittavat paketit GCC-apuohjelmaa varten. Nyt voimme käyttää GCC-apuohjelmaa koneessamme. Harkitse alla olevaa lähtökohtaa:
Vaihe 3: Tarkista asennus.
Tarkista asennus suorittamalla komento gcc -version seuraavasti:
gcc --version
Se näyttää GCC-apuohjelman asennetun version. Jos haluat nähdä tarkemmat tiedot versiosta, käytä -v-vaihtoehtoa. Harkitse alla olevaa tulosta:
Täällä olemme onnistuneesti asentaneet GCC-apuohjelman. Ymmärretään käyttää sitä. Luomme ja suoritamme joitain c-ohjelmia GCC:n avulla.
Suorita ensimmäinen C-ohjelma gcc:llä
Luo perus c ohjelma 'Hei maailma!'. Luo tiedosto 'hello.c' ja laita siihen alla oleva koodi:
#include int main() { printf('Hello, world! '); return 0; }
Käännä nyt hello.c seuraavasti:
gcc hello.c
Jos suoritamme suoraan hello.c:n, se heittää virheen. Tee siitä suoritettava, Linux-järjestelmän oletussuoritettava tiedosto on a.out. Suorita tiedosto suorittamalla chmod-komento seuraavasti:
chmod a+x a.out
Suorita nyt c-ohjelma seuraavasti:
./a.out
Harkitse alla olevaa tulosta:
GCC-komento Esimerkkejä
Joitakin hyödyllisiä esimerkkejä gcc-komennosta ovat seuraavat:
Oletuksena gcc-komento luo objektitiedoston muodossa 'a.out .' Jos haluat muuttaa oletustulostustiedoston nimeä, käytä '-O' vaihtoehto.
Suoritetaan gcc peruskomento:
gcc hello.c
Yllä oleva komento luo objektitiedoston a.out. Voit määrittää objektitiedoston nimen suorittamalla komennon seuraavasti:
rakentajat javassa
gcc hello.c -o hello
Se luo tulostiedoston 'hello'. Harkitse alla olevaa tulosta:
Ota kaikki varoitukset käyttöön lähdössä käyttämällä '-seinä' vaihtoehto gcc-komennolla. Luodaan muuttuja hello.c:n pääfunktioon. Harkitse alla olevaa koodia:
hei C:
#include int main() { int a; printf('Hello, world! '); return 0; }
Jos kokoamme yllä olevan koodin käyttämällä -Wall-vaihtoehtoa. Se heittää varoituksia. Suorita alla oleva komento kääntääksesi tiedoston:
gcc -wall hello.c
Yllä oleva komento näyttää varoitukset. Harkitse alla olevaa tulosta:
Voimme tuottaa vain käännösprosessin vaiheittaisen tulosteen.
Tuo esiprosessorin ulostulo
Voimme tuottaa vain esikäsittelyn tulosteen käyttämällä '-E'-optiota. Harkitse alla olevaa komentoa:
gcc -E hello.c > hello.i
Yllä olevasta komennosta tiedosto 'hei.i' joka sisältää esikäsitellyn tulosteen. Harkitse alla olevaa tulosta:
Tuo kokoonpanokoodi
Tuottaaksesi kokoonpanokoodin, suorita komento '-S'-vaihtoehdolla. Harkitse alla olevaa komentoa:
gcc -S hello.c > hello.s
Yllä oleva komento luo 'hello.s.' tiedosto, joka sisältää kokoonpanokoodin. Harkitse alla olevaa tulosta:
Tuo käännetty koodi
lajitella kasa
Voimme tuottaa vain käännetyn koodin käyttämällä '-C' vaihtoehtoa. Harkitse alla olevaa komentoa:
gcc -C hello.c
Yllä oleva komento luo tiedoston 'a.out', jossa on vain konekoodi tai käännetty koodi. Harkitse alla olevaa tulosta:
Tuota kaikki käännösprosessin välitiedostot
Voimme tuottaa kaikki käännösprosessin välitiedostot käyttämällä '-save-temp' -vaihtoehtoa. Harkitse alla olevaa tulosta:
gcc -save-temps hello.c
Yllä oleva komento luo kaikki välitiedostot sekä suoritettavat tiedostot kerralla. Harkitse alla olevaa tulosta:
Voimme näyttää yksityiskohtaiset tiedot jokaisesta gcc-komennon suorittamasta vaiheesta. Voit tehdä tämän suorittamalla komennon '-v'-vaihtoehdolla.
gcc -W -v hello.c
Harkitse alla olevaa lähtökohtaa:
Olemme keskustelleet joistakin hyödyllisimmistä esimerkeistä gcc-komennosta. Koska gcc-komento helpottaa valtavan määrän vaihtoehtoja, voit juuttua missä tahansa sitä käyttäessäsi. Katsotaan kuinka saat itse apua terminaalista.
GCC käsikirja
Jos joudut jumiin jossain käyttäessäsi gcc-komentoa, voit ottaa apua päätteeltäsi. Pääset käsikirjaan komentoriviltä suorittamalla man-komennon seuraavasti:
man gcc
Yllä oleva komento näyttää oppaan, joka sisältää kuvauksen ja luettelon tuetuista vaihtoehdoista sekä lyhyen kuvauksen. Harkitse alla olevaa lähtökohtaa:
voit vierittää tulostetta lukeaksesi lisää. Paina 'h'-näppäintä saadaksesi apua ja q poistuaksesi käsikirjasta ja takaisin terminaaliin.