Kaip įdiegti GNU GCC (C ir C++ kompiliatorius) ir kūrimo įrankius RHEL/CentOS ir Fedora


Šiais laikais, kaip sistemos administratorius ar inžinierius, negalite jaustis patenkinti mokėdami naudoti CLI ir šalinti GNU/Linux serverių triktis, tačiau turėsite žengti dar vieną žingsnį į kūrimo sritį, kad išliktumėte žaidimo viršuje. . Jei svarstote apie branduolio kūrimo ar Linux programų kūrimo karjerą, geriausia vieta pradėti nuo C arba C++.

Taip pat skaitykite: įdiekite C, C++ ir Build Essential Tools Debian/Ubuntu/Mint

Šiame straipsnyje paaiškinsime, kaip Fedora ir CentOS/RHEL sistemose įdiegti Gnu C ir C++ kompiliatorius ir su jais susijusius kūrimo įrankius, tokius kaip automake, autoconf, flex, bison ir kt.

Kas yra Kompiliatorius?

Paprastais žodžiais tariant, kompiliatorius yra programinė įranga, kuri šaltinio kalba parašytus teiginius paverčia tiksline kalba, kurią mašinos CPU gali suprasti ir vykdyti.

„Fedora“ ir dariniuose (iš tikrųjų tai galioja ir visai „Linux“ distribucijos ekosistemai) geriausiai žinomi C ir C++ kompiliatoriai yra gcc. ir g++, kurias sukūrė ir aktyviai remia Laisvosios programinės įrangos fondas kaip GNU projekto dalis.

GCC (C++ kompiliatoriaus ir kūrimo įrankių) diegimas

Jei gcc ir (arba) g++ ir su jais susiję kūrimo įrankiai jūsų sistemoje neįdiegti pagal numatytuosius nustatymus, galite įdiegti naujausią galimą iš saugyklų taip:

yum groupinstall 'Development Tools'		[on CentOS/RHEL 7/6]
dnf groupinstall 'Development Tools'		[on Fedora 22+ Versions]

Prieš pradėdami rašyti C arba C++ kodą, norime jums parodyti kitą įrankį, skirtą tobulinti kūrimo įrankių rinkinį.

C ir C++ kompiliacijų pagreitinimas sistemoje „Linux“.

Kai kūrimo proceso metu turite iš naujo kompiliuoti kelis kartus po to, kai atlikote šaltinio kodo pakeitimus, puiku turėti kompiliatoriaus talpyklą, kad paspartintumėte būsimus perkompiliavimus.

„Linux“ sistemoje yra programa, vadinama cache, kuri pagreitina perkompiliavimą, nes talpykloje saugo ankstesnes kompiliacijas ir nustato, kada tas pats kompiliavimas atliekamas dar kartą. Be C ir C++, jis taip pat palaiko Objective-C ir Objective-C++.

Cache turi tik keletą apribojimų: ji naudinga tik perkompiliuojant vieną failą. Kitų tipų kompiliacijose procesas baigsis tikruoju kompiliatoriumi. Tas pats atsitinka, jei kompiliatoriaus vėliavėlė nepalaikoma. Geroji pusė yra ta, kad bet kokiu atveju tai netrukdys tikram kompiliavimui ir nesukels klaidos – tiesiog grįžkite į tikrąjį kompiliatorių.

Įdiegkime šį įrankį:

yum install ccache 

ir pažiūrėkite, kaip tai veikia su pavyzdžiu.

GNU C kompiliatoriaus testavimas naudojant paprastą C++ programą

Pavyzdžiui, naudokite paprastą C++ programą, kuri apskaičiuoja stačiakampio plotą, kai jo ilgis ir plotis pateikiami kaip įvestis.

Atidarykite mėgstamą teksto rengyklę ir įveskite šį kodą, tada išsaugokite kaip area.cpp:

#include <iostream> 
using namespace std;  

int main() 
{ 
float length, width, area; 

cout << "Enter the length of the rectangle: "; 
cin >> length; 
cout << "Now enter the width: "; 
cin >> width; 
area = length*width; 

cout <<"The area of the rectangle is: "<< area << endl;

return 0; 
} 

Norėdami sukompiliuoti aukščiau pateiktą kodą į vykdomąją sritį, pavadintą dabartiniame darbo kataloge, naudokite jungiklį -o su g++:

g++ area.cpp -o area

Jei norite pasinaudoti ccache pranašumais, tiesiog pridėkite anksčiau pateiktą komandą su ccache, kaip nurodyta toliau:

ccache g++ area.cpp -o area 

Tada paleiskite dvejetainį failą:

./area
Pavyzdžio išvestis
Enter the length of the rectangle: 2.5
Now enter the width: 3.7
The area of the rectangle is: 9.25

Neleiskite, kad šis paprastas pavyzdys manytų, kad cache nėra naudinga. Sužinosite, koks puikus įrankis yra cache, kai perkompiliuojate didelį šaltinio kodo failą. Tas pats principas galioja ir C programoms.

Santrauka

Šiame straipsnyje paaiškinome, kaip įdiegti ir naudoti GNU kompiliatorius, skirtus C ir C++ Fedora pagrįstuose platinimuose.

Be to, parodėme, kaip naudoti kompiliatoriaus talpyklą, kad paspartintume to paties kodo perkompiliavimą. Daugiau parinkčių ir pavyzdžių galite rasti internetiniuose man puslapiuose, skirtuose gcc ir g++, tačiau laukiame jūsų žinučių, jei turite klausimų ar komentarų.