Kuinka asentaa GNU GCC (C- ja C++-kääntäjä) ja kehitystyökalut RHEL/CentOS:ään ja Fedoraan


Nykyään järjestelmänvalvojana tai insinöörinä et voi olla tyytyväinen CLI:n käyttämiseen ja GNU/Linux-palvelimien vianmääritykseen, mutta sinun on mentävä askeleen pidemmälle myös kehitysalueella pysyäksesi pelisi huipulla. . Jos harkitset uraa ytimen kehittämisessä tai Linux-sovellusten parissa, C tai C++ on paras paikka aloittaa.

Lue myös: Asenna C, C++ ja Build Essential Tools Debianissa/Ubuntussa/Mintissä

Tässä artikkelissa selitämme kuinka Gnu C- ja C++-kääntäjät ja niihin liittyvät kehitystyökalut, kuten automake, autoconf, flex, bison jne. asennetaan Fedora- ja CentOS/RHEL-järjestelmiin.

Mikä on Compiler?

Yksinkertaisesti sanottuna kääntäjä on ohjelmisto, joka muuntaa lähdekielellä kirjoitetut lauseet kohdekieleksi, jota koneen CPU voi ymmärtää ja suorittaa.

Fedorassa ja johdannaisissa (itse asiassa tämä pätee myös koko Linux-distroekosysteemiin) tunnetuimmat C- ja C++-kääntäjät ovat gcc. ja g++, molemmat kehittäneet ja tukeneet aktiivisesti Free Software Foundationin osana GNU-projektia.

Asenna GCC (C++ Compiler and Development Tools

Jos gcc ja/tai g++ ja niihin liittyvät kehitystyökalut eivät ole oletuksena asennettuna järjestelmääsi, voit asentaa uusimman saatavilla olevan arkistosta. seuraavasti:

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

Ennen kuin sukeltaamme C- tai C++-koodin kirjoittamiseen, haluamme näyttää sinulle toisen työkalun, jolla voit tehostaa kehitystyökalujasi.

C- ja C++-kokoelman nopeuttaminen Linuxissa

Kun kehitysprosessin aikana joudut kääntämään uudelleen useita kertoja lähdekoodiin muutosten jälkeen, on hienoa, että sinulla on kääntäjän välimuisti tulevien uudelleenkäännösten nopeuttamiseksi.

Linuxissa on ccache-niminen apuohjelma, joka nopeuttaa uudelleenkääntämistä tallentamalla aiemmat käännökset välimuistiin ja havaitsemalla, milloin sama käännös tehdään uudelleen. C:n ja C++:n lisäksi se tukee myös Objective-C- ja Objective-C++-koodeja.

Välimuistissa on vain muutamia rajoituksia: se on hyödyllinen vain käännettäessä uudelleen yhtä tiedostoa. Muiden käännöstyyppien kohdalla prosessi päätyy suorittamaan varsinaisen kääntäjän. Sama tapahtuu, jos kääntäjän lippua ei tueta. Valoisa puoli on, että se ei missään tapauksessa häiritse varsinaista käännöstä eikä aiheuta virhettä - vain palaa varsinaiseen kääntäjään.

Asennataan tämä työkalu:

yum install ccache 

ja katso kuinka se toimii esimerkin avulla.

GNU C -kääntäjän testaus yksinkertaisella C++ -ohjelmalla

Esimerkkinä käytetään yksinkertaista C++-ohjelmaa, joka laskee suorakulmion alueen sen jälkeen, kun sen pituus ja leveys on syötetty.

Avaa suosikkitekstieditori ja kirjoita seuraava koodi ja tallenna sitten nimellä 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; 
} 

Kääntääksesi yllä olevan koodin suoritettavaksi nimetyksi alueeksi nykyisessä työhakemistossa, käytä -o-kytkintä g++-näppäimen kanssa:

g++ area.cpp -o area

Jos haluat hyödyntää ccachea, lisää yllä oleva komento ccache:lla seuraavasti:

ccache g++ area.cpp -o area 

Suorita sitten binääri:

./area
Näytelähtö
Enter the length of the rectangle: 2.5
Now enter the width: 3.7
The area of the rectangle is: 9.25

Älä anna tämän yksinkertaisen esimerkin saada sinut ajattelemaan, että ccache ei ole hyödyllinen. Tulet tietämään, mikä loistava työkalu ccache on, kun käännät uudelleen suurta lähdekooditiedostoa. Sama periaate pätee myös C-ohjelmiin.

Yhteenveto

Tässä artikkelissa olemme selittäneet, kuinka GNU-kääntäjät asennetaan ja käytetään C:lle ja C++:lle Fedora-pohjaisissa jakeluissa.

Lisäksi näytimme, kuinka kääntäjän välimuistia käytetään nopeuttamaan saman koodin uudelleenkääntämistä. Vaikka voit katsoa lisää vaihtoehtoja ja esimerkkejä online-man-sivuilta gcc ja g++, odotamme innolla kuulevasi, jos sinulla on kysyttävää tai kommentteja.