Hvordan installere GNU GCC (C og C++ kompilator) og utviklingsverktøy i RHEL/CentOS og Fedora


I dag kan du som systemadministrator eller ingeniør ikke føle deg fornøyd med å vite hvordan du bruker CLI og feilsøker GNU/Linux-servere, men du må gå et skritt videre inn i utviklingsområdet også for å holde deg på toppen av spillet ditt. . Hvis du vurderer en karriere innen kjerneutvikling eller applikasjoner for Linux, er C eller C++ det beste stedet å starte.

Les også: Installer C, C++ og bygg essensielle verktøy i Debian/Ubuntu/Mint

I denne artikkelen vil vi forklare hvordan du installerer Gnu C og C++ kompilatorer og dets relaterte utviklingsverktøy som automake, autoconf, flex, bison, etc. i Fedora og CentOS/RHEL-systemer.

Hva er kompilator?

Med enkle ord er en kompilator et program som transformerer utsagn skrevet på et kildespråk til et målspråk som maskinens CPU kan forstå og utføre.

I Fedora og derivater (faktisk, det er sant for hele Linux distro-økosystemet også), er de mest kjente C- og C++-kompilatorene gcc henholdsvis og g++, begge utviklet og støttet aktivt av Free Software Foundation som en del av GNU-prosjektet.

Installere GCC (C++ kompilator og utviklingsverktøy

Hvis gcc og/eller g++ og det relaterte Utviklingsverktøy ikke er installert i systemet ditt som standard, kan du installere det siste som er tilgjengelig fra repositoriene følgende:

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

Før vi dykker ned i å skrive C- eller C++-kode, er det et annet verktøy for å øke utviklingsverktøysettet ditt som vi ønsker å vise deg.

Fremskynde C- og C++-samlinger i Linux

Når du som en del av utviklingsprosessen må rekompilere flere ganger etter å ha gjort endringer i kildekoden, er det flott å ha en kompilatorbuffer for å fremskynde fremtidige rekompileringer.

I Linux er det et verktøy kalt ccache, som øker hastigheten på rekompilering ved å bufre tidligere kompileringer og oppdage når den samme kompileringen gjøres igjen. I tillegg til C og C++, støtter den også Objective-C og Objective-C++.

Ccache har bare noen få begrensninger: den er bare nyttig når du rekompilerer en enkelt fil. For andre typer kompilasjoner vil prosessen ende opp med å kjøre selve kompilatoren. Det samme skjer hvis et kompilatorflagg ikke støttes. Den lyse siden er at den i alle fall ikke vil forstyrre den faktiske kompileringen og ikke gi feil – bare fall tilbake til den faktiske kompilatoren.

La oss installere dette verktøyet:

yum install ccache 

og se hvordan det fungerer med et eksempel.

Tester GNU C-kompileren med et enkelt C++-program

Som et eksempel, la oss bruke et enkelt C++-program som beregner arealet til et rektangel etter at lengden og bredden er gitt som input.

Åpne favoritttekstredigeringsprogrammet og skriv inn følgende kode, og lagre deretter som 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; 
} 

For å kompilere koden ovenfor til et kjørbart navngitt område i gjeldende arbeidskatalog, bruk -o-bryteren med g++:

g++ area.cpp -o area

Hvis du vil dra nytte av ccache, setter du bare ccache foran kommandoen ovenfor, som følger:

ccache g++ area.cpp -o area 

Kjør deretter binæren:

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

Ikke la dette enkle eksemplet få deg til å tro at ccache ikke er nyttig. Du vil finne ut hva et flott verktøy ccache er når du rekompilerer en stor kildekodefil. Det samme prinsippet gjelder også for C-programmer.

Sammendrag

I denne artikkelen har vi forklart hvordan du installerer og bruker GNU-kompilatorene for C og C++ i Fedora-baserte distribusjoner.

I tillegg viste vi hvordan man bruker en kompilatorbuffer for å øke hastigheten på rekompilering av samme kode. Selv om du kan se de elektroniske man-sidene for gcc og g++ for flere alternativer og eksempler, ser vi frem til å høre fra deg hvis du har spørsmål eller kommentarer.