Kako instalirati GNU GCC (kompajler za C i C ++) i razvojne alate u RHEL/CentOS i Fedoru


Danas se kao administrator ili inženjer sustava ne možete osjećati zadovoljno znajući kako koristiti CLI i rješavati GNU/Linux poslužitelje, ali trebat ćete otići korak dalje u razvojno područje da biste ostali na vrhu svoje igre . Ako razmišljate o karijeri u razvoju jezgre ili aplikacijama za Linux, tada je C ili C ++ najbolje mjesto za početak.

Pročitajte također: Instalirajte C, C ++ i izradite osnovne alate u Debian/Ubuntu/Mint

U ovom ćemo članku objasniti kako instalirati Gnu C i C ++ kompajlere i s njim povezane razvojne alate kao što su automake, autoconf, flex, bison itd. U Fedora i CentOS/RHEL sustave.

Što je Compiler?

Jednostavnim riječima, kompajler je softverski program koji pretvara izjave napisane na izvornom jeziku u ciljni jezik koji CPU stroja može razumjeti i izvršiti.

U Fedori i izvedenicama (zapravo, to vrijedi i za cijeli distribucijski ekosustav Linuxa), najpoznatiji kompajleri za C i C ++ su gcc, odnosno g ++, koje je Free Software Foundation razvila i podržala aktivno kao dio GNU projekt.

Instaliranje GCC (C ++ Kompajler i razvojni alati

Ako gcc i/ili g ++ i s njima povezani razvojni alati nisu zadani u vašem sustavu, možete instalirati najnovije dostupne iz spremišta na sljedeći način:

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

Prije nego što krenemo u pisanje C ili C ++ koda, postoji još jedan alat za poboljšanje vašeg razvojnog alata koji vam želimo pokazati.

Ubrzanje kompilacija C i C ++ u Linuxu

Kada ste dio razvojnog procesa, morate nekoliko puta prekompajlirati nakon što napravite promjene u izvornom kodu, sjajno je imati predmemoriju kompajlera kako biste ubrzali buduće ponovne kompilacije.

U Linuxu postoji uslužni program zvan ccache koji ubrzava ponovnu kompilaciju predmemoriranjem prethodnih kompilacija i otkrivanjem kada se ista kompilacija ponovno radi. Osim C i C ++, također podržava Objective-C i Objective-C ++.

Ccache ima samo nekoliko ograničenja: koristan je samo tijekom ponovnog prevođenja jedne datoteke. Za ostale vrste kompilacija, proces će na kraju pokrenuti stvarni kompajler. Ista se stvar događa ako zastavica kompajlera nije podržana. Svijetla je strana što u svakom slučaju neće ometati stvarnu kompilaciju i neće izbaciti pogrešku - samo se vratite na stvarni kompajler.

Instalirajmo ovaj alat:

# yum install ccache 

i pogledajte kako to funkcionira na primjeru.

Testiranje GNU C kompajlera jednostavnim programom C ++

Kao primjer, poslužimo se jednostavnim programom C ++ koji izračunava površinu pravokutnika nakon što su njegova duljina i širina navedeni kao ulazi.

Otvorite svoj omiljeni uređivač teksta i unesite sljedeći kod, a zatim spremite kao 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; 
} 

Za kompajliranje gornjeg koda u izvršno imenovano područje u trenutnom radnom direktoriju upotrijebite prekidač -o s g ++:

# g++ area.cpp -o area

Ako želite iskoristiti ccache, samo dodajte gornju naredbu ccacheom, kako slijedi:

# ccache g++ area.cpp -o area 

Zatim pokrenite binarni:

./area
Enter the length of the rectangle: 2.5
Now enter the width: 3.7
The area of the rectangle is: 9.25

Ne dopustite da vas ovaj jednostavni primjer natjera da mislite da caca nije koristan. Saznat ćete što je izvrstan cache alata pri ponovnom prevođenju velike datoteke izvornog koda. Isti princip vrijedi i za C programe.

Sažetak

U ovom smo članku objasnili kako instalirati i koristiti GNU kompajlere za C i C ++ u distribucijama temeljenim na Fedori.

Osim toga, pokazali smo kako koristiti predmemoriju kompajlera za ubrzanje rekompilacija istog koda. Iako se na daljnjim opcijama i primjerima možete obratiti internetskim stranicama s korisničkim podacima za gcc i g ++, radujemo se što ćete se javiti ako imate pitanja ili komentare.