Linux sistemoje GCC reiškia GNU kompiliatoriaus kolekcija . Tai įvairių programavimo kalbų kompiliavimo sistema. Jis daugiausia naudojamas C ir C++ programoms kompiliuoti. Šaltinio programos pavadinimas yra būtinas argumentas; poilsio argumentai yra neprivalomi, pvz., derinimas, įspėjimas, objekto failas ir bibliotekų susiejimas.
GCC yra pagrindinis GNU įrankių grandinės komponentas. Naudojant GCC, sudaromi įvairūs atvirojo kodo projektai, tokie kaip Linux branduolys ir GNU įrankiai.
Jis platinamas pagal GPL (bendrąją viešąją licenciją). Pirmoji versija, GCC 1.0 , buvo išleistas 1987 m. Jis buvo skirtas tik C programavimo kalbai, tačiau tais pačiais metais buvo išplėstas ir C++ programavimo kalba . Vėliau jis buvo sukurtas kitoms programavimo kalboms, tokioms kaip Objective-C, Objective-C++, Fortran, Java , Ada, Go ir kt. Naujausioje jo versijoje yra daug patobulintos programavimo kalbos.
Tai oficialus GNU OS partneris; todėl jis buvo priimtas kaip standartinis Linux pagrįstų sistemų kompiliatorius.
10 galia iš 6
GCC sudedamosios dalys
GCC yra nešiojamas įrankis ir gali veikti daugelyje operacinių sistemų. Be to, jį galima perkelti į Windows naudojant kai kuriuos įrankius, pvz Cygwin, MinGW ir MinGW-W64 . Kadangi tai yra pagrindinis GNU įrankių grandinės komponentas, joje yra šie komponentai, skirti kurti programas ir operacines sistemas:
GNU kompiliatorių kolekcija (GCC): Tai daugelio kalbų, tokių kaip C/C++ ir Objective-C/C++, kompiliatorių rinkinys.
GNU gamintojas: Tai automatizavimo įrankis, naudojamas programoms kompiliuoti ir kurti.
GNU Binutils: Tai rinkinys, kuriame yra dvejetainių paslaugų įrankių, tokių kaip saitas ir surinkėjas .
GNU Debugger (GDB). Jis naudojamas programų derinimui.
GNU automatiniai įrankiai: Tai kūrimo sistema, kurioje yra keletas naudingų įrankių, tokių kaip „Autoconf“, „Autoheader“, „Automake“ ir „Libtool“.
GNU bizonas: Tai analizavimo generatorius kaip lex ir yacc.
GCC kompiliatoriaus procesas
GCC sukompiliuoja ir padaro programą vykdomą atlikdama šiuos keturis veiksmus:
Išankstinis apdorojimas: Šiame žingsnyje GNU pirminis procesorius (cpp.exe) sukuria tarpinį failą su šaltinio kodu. Išankstinis procesorius apima antraštes (#include) ir išplečia makrokomandas (#define). Apsvarstykite toliau pateiktą komandą:
cpp hello.c > hello.i
Aukščiau pateikta komanda sukurs tarpinį failą „hello.i“.
Kompiliacija: Šiame žingsnyje iš anksto apdorotas šaltinio kodas sukompiliuojamas į konkretaus procesoriaus surinkimo kodą.
gcc -S hello.i
Aukščiau pateikta komanda sukurs surinkimo failą „hello.s.“ Parinktis „-s“ naudojama norint nurodyti, kad būtų sukurtas surinkimo kodas, o ne objekto kodas.
Surinkimas: Surinkimo kodas paverčiamas mašininiu kodu. Bus sukurtas objekto failas „hello.o“.
as -o hello.o hello.s
Linker: Linker (ld.exe) yra paskutinis kompiliatoriaus proceso žingsnis. Jis susieja objekto kodą su bibliotekos kodu ir sukuria vykdomąjį failą.
ld -o hello.exe hello.o
Aukščiau pateikta komanda sukurs vykdomąjį failą „hello.exe“.
GCC diegimas Linux sistemoje
Pagal numatytuosius nustatymus jis pateikiamas su dauguma Linux platinimų. Galime tai patikrinti vykdydami žemiau esančią komandą:
gcc -version
Aukščiau pateikta komanda parodys įdiegtą GCC įrankio versiją. Jei jis neįdiegtas, atlikite toliau nurodytus veiksmus, kad jį įdiegtumėte:
1 veiksmas: atnaujinkite paketų sąrašą.
Norėdami atnaujinti paketų sąrašą, vykdykite šią komandą:
sudo apt update
Jis paprašys sistemos administratoriaus slaptažodžio, įveskite slaptažodį. Bus pradėtas sistemos paketo atnaujinimas. Apsvarstykite toliau pateiktą išvesties momentą:
2 veiksmas: įdiekite „build-essential“ paketą.
Jame yra įvairių paketų, tokių kaip gcc, g++ ir make utility. Vykdykite toliau pateiktą komandą, kad ją įdiegtumėte:
sudo apt install build-essential
Aukščiau pateikta komanda įdiegs reikiamus GCC paslaugų paketus. Dabar savo mašinoje galime naudoti GCC įrankį. Apsvarstykite toliau pateiktą išvesties momentą:
3 veiksmas: patikrinkite diegimą.
Norėdami patikrinti diegimą, vykdykite komandą gcc -version taip:
gcc --version
Bus rodoma įdiegta GCC programos versija. Norėdami pamatyti tikslesnę informaciją apie versiją, naudokite parinktį „-v“. Apsvarstykite toliau pateiktą išvestį:
Čia mes sėkmingai įdiegėme GCC įrankį. Supraskime juo naudotis. Sukursime ir vykdysime kai kurias c programas naudodami GCC.
Paleiskite pirmąją C programą naudodami gcc
Sukurkite pagrindinį c programa 'Labas pasauli!'. Sukurkite failą „hello.c“ ir įdėkite į jį žemiau esantį kodą:
#include int main() { printf('Hello, world! '); return 0; }
Dabar sukompiliuokite hello.c taip:
gcc hello.c
Jei tiesiogiai paleisime hello.c, ji išmes klaidą. Padarykite jį vykdomąjį, numatytasis vykdomasis failas Linux sistemoje yra a.out. Norėdami paleisti failą, vykdykite komandą chmod taip:
chmod a+x a.out
Dabar paleiskite c programą kaip:
./a.out
Apsvarstykite toliau pateiktą išvestį:
GCC komandų pavyzdžiai
Keletas naudingų gcc komandos pavyzdžių:
Pagal numatytuosius nustatymus gcc komanda sukuria objekto failą kaip 'a.out .' Jei norite pakeisti numatytąjį išvesties failo pavadinimą, naudokite '-O' variantas.
Vykdykime pagrindinę gcc komandą:
gcc hello.c
Aukščiau pateikta komanda sugeneruos objekto failą „a.out“. Norėdami nurodyti objekto failo pavadinimą, vykdykite komandą taip:
gcc hello.c -o hello
Jis sugeneruos išvesties failą „labas“. Apsvarstykite toliau pateiktą išvestį:
Norėdami įjungti visus įspėjimus išvestyje, naudokite '-Siena' parinktis su gcc komanda. Sukurkime pagrindinėje hello.c funkcijoje kintamąjį. Apsvarstykite toliau pateiktą kodą:
pėdos prieš pėdą
hello.c:
#include int main() { int a; printf('Hello, world! '); return 0; }
Jei aukščiau pateiktą kodą sudarysime naudodami parinktį -Siena. Tai išmes įspėjimus. Vykdykite toliau pateiktą komandą, kad sukurtumėte failą:
gcc -wall hello.c
Aukščiau pateikta komanda parodys įspėjimus. Apsvarstykite toliau pateiktą išvestį:
Galime sukurti tik laipsnišką kompiliavimo proceso išvestį.
Sukurkite pirminio procesoriaus išvestį
Naudodami parinktį „-E“ galime pagaminti tik išankstinio apdorojimo išvestį. Apsvarstykite toliau pateiktą komandą:
gcc -E hello.c > hello.i
Iš aukščiau pateiktos komandos failas 'Labas as' sugeneruojama iš anksto apdorota išvestis. Apsvarstykite toliau pateiktą išvestį:
Sukurkite surinkimo kodą
Norėdami sukurti surinkimo kodą, vykdykite komandą su parinktimi „-S“. Apsvarstykite toliau pateiktą komandą:
gcc -S hello.c > hello.s
Aukščiau pateikta komanda sugeneruos „hello.s“. failą, kuriame yra surinkimo kodas. Apsvarstykite toliau pateiktą išvestį:
Sukurkite sukompiliuotą kodą
aws sns
Naudodami parinktį „-C“ galime sukurti tik sukompiliuotą kodą. Apsvarstykite toliau pateiktą komandą:
gcc -C hello.c
Aukščiau pateikta komanda sugeneruos failą „a.out“, kuriame bus tik mašinos kodas arba sukompiliuotas kodas. Apsvarstykite toliau pateiktą išvestį:
Sukurkite visus tarpinius kompiliavimo proceso failus
Naudodami parinktį „-save-temp“ galime sukurti visus tarpinius kompiliavimo proceso failus. Apsvarstykite toliau pateiktą išvestį:
gcc -save-temps hello.c
Aukščiau pateikta komanda sugeneruos visus tarpinius failus ir vykdomuosius failus vienu metu. Apsvarstykite toliau pateiktą išvestį:
Galime parodyti išsamią informaciją apie kiekvieną gcc komandos atliktą žingsnį. Norėdami tai padaryti, vykdykite komandą naudodami parinktį „-v“.
gcc -W -v hello.c
Apsvarstykite toliau pateiktą išvesties momentą:
Aptarėme keletą naudingiausių gcc komandos pavyzdžių. Kadangi gcc komanda palengvina daugybę parinkčių, ją naudodami galite įstrigti bet kur. Pažiūrėkime, kaip patiems gauti pagalbą iš terminalo.
GCC vadovas
Jei kur nors užstringate naudodami komandą gcc, galite kreiptis pagalbos iš savo terminalo. Norėdami pasiekti vadovą iš komandinės eilutės, vykdykite komandą man taip:
man gcc
Aukščiau pateikta komanda parodys vadovą, kuriame yra aprašymas ir palaikomų parinkčių sąrašas su trumpu aprašymu. Apsvarstykite toliau pateiktą išvesties momentą:
galite slinkti išvestį, kad perskaitytumėte daugiau. Paspauskite mygtuką „h“, kad gautumėte pagalbos, ir q, kad išeitumėte iš vadovo ir grįžtumėte į terminalą.