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


Danas, kao sistemski administrator ili inženjer, ne možete se osjećati zadovoljni ako znate kako koristiti CLI i rješavati probleme sa GNU/Linux serverima, ali ćete morati ići korak dalje u razvojnu oblast da biste ostali na vrhu svoje igre . Ako razmišljate o karijeri u razvoju kernela ili aplikacijama za Linux, onda je C ili C++ najbolje mjesto za početak.

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

U ovom članku ćemo objasniti kako da instalirate Gnu C i C++ kompajlere i srodne razvojne alate kao što su automake, autoconf, flex, bison, itd. u Fedora i CentOS/RHEL sistemima.

Šta je kompajler?

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 derivatima (zapravo, to vrijedi i za cijeli Linux distribucijski ekosistem), najpoznatiji C i C++ kompajleri su gcc i g++, oba razvijena i aktivno podržana od strane Free Software Foundation kao dio GNU projekta.

Instalacija GCC (C++ kompajler i razvojni alati).

Ako gcc i/ili g++ i povezani razvojni alati nisu instalirani u vašem sistemu prema zadanim postavkama, možete instalirati najnovije dostupne iz spremišta kao što slijedi:

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

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

Ubrzavanje C i C++ kompilacija u Linuxu

Kada kao dio procesa razvoja morate ponovo kompajlirati nekoliko puta nakon što unesete promjene u izvorni kod, sjajno je imati keš kompajlera kako biste ubrzali buduće ponovne kompilacije.

U Linuxu postoji uslužni program pod nazivom ccache, koji ubrzava ponovnu kompilaciju keširanjem prethodnih kompilacija i otkrivanjem kada se ista kompilacija ponovo radi. Osim C i C++, podržava i Objective-C i Objective-C++.

Keš memorija ima samo nekoliko ograničenja: korisna je samo pri ponovnom kompajliranju jedne datoteke. Za druge vrste kompilacija, proces će završiti pokretanjem stvarnog kompajlera. Ista stvar se dešava ako zastavica kompajlera nije podržana. Svetla strana je to što u svakom slučaju neće ometati stvarnu kompilaciju i neće izazvati grešku – samo se vratite na stvarni kompajler.

Hajde da instaliramo ovaj alat:

yum install ccache 

i pogledajte kako to funkcionira na primjeru.

Testiranje GNU C kompajlera sa jednostavnim C++ programom

Kao primjer, koristimo jednostavan C++ program koji izračunava površinu pravokutnika nakon što su njegova dužina i širina date kao ulazni podaci.

Otvorite svoj omiljeni uređivač teksta i unesite sljedeći kod, a zatim sačuvajte 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 koristite prekidač -o sa g++:

g++ area.cpp -o area

Ako želite da iskoristite prednosti ccache, samo dodajte gornju naredbu sa ccache, kako slijedi:

ccache g++ area.cpp -o area 

Zatim pokrenite binarni program:

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

Nemojte dozvoliti da vas ovaj jednostavan primjer navede da mislite da ccache nije koristan. Saznat ćete šta je odličan alat ccache prilikom ponovnog kompajliranja velike datoteke izvornog koda. Isti princip vrijedi i za C programe.

Sažetak

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

Osim toga, pokazali smo kako koristiti keš kompajlera za ubrzanje ponovne kompilacije istog koda. Iako se možete obratiti online man stranicama za gcc i g++ za daljnje opcije i primjere, radujemo se što ćemo čuti od vas ako imate bilo kakvih pitanja ili komentara.