Jinsi ya Kufunga GNU GCC (C na C++ Compiler) na Vyombo vya Maendeleo katika RHEL/CentOS na Fedora


Siku hizi, kama msimamizi wa mfumo au mhandisi huwezi kuridhika kwa kujua jinsi ya kutumia CLI na kusuluhisha seva za GNU/Linux, lakini utahitaji kwenda hatua moja zaidi katika eneo la ukuzaji na pia kukaa juu ya mchezo wako. . Ikiwa unazingatia kazi ya ukuzaji wa kernel au utumiaji wa Linux, basi C au C++ ndio mahali pazuri pa kuanzia.

Soma Pia: Sakinisha C, C++ na Unda Zana Muhimu katika Debian/Ubuntu/Mint

Katika makala haya tutaeleza jinsi ya kusakinisha vikusanyaji vya Gnu C na C++ na zana zake za Maendeleo zinazohusiana kama vile automake, autoconf, flex, bison, n.k. katika mifumo ya Fedora na CentOS/RHEL.

Mkusanyaji ni nini?

Kwa maneno rahisi, mkusanyaji ni programu ya programu inayobadilisha taarifa zilizoandikwa katika lugha asilia hadi lugha lengwa ambayo CPU ya mashine inaweza kuelewa na kutekeleza.

Katika Fedora na derivatives (kwa kweli, hiyo ni kweli kwa mfumo mzima wa ikolojia wa Linux distro pia), wakusanyaji wanaojulikana zaidi wa C na C++ ni gcc na g++, mtawaliwa, zote mbili zimetengenezwa na kuungwa mkono kikamilifu na Free Software Foundation kama sehemu ya Mradi wa GNU.

Inasakinisha GCC (Mkusanyaji wa C++ na Zana za Ukuzaji

Ikiwa gcc na/au g++ na Zana zake za Maendeleo zinazohusiana hazijasakinishwa katika mfumo wako kwa chaguomsingi, unaweza kusakinisha zinazopatikana hivi punde kutoka kwa hazina kama ifuatavyo:

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

Kabla hatujazama katika kuandika msimbo wa C au C++, kuna zana nyingine ya kuboresha zana yako ya ukuzaji ambayo tunataka kukuonyesha.

Kuharakisha Mikusanyiko ya C na C++ katika Linux

Unapokuwa kama sehemu ya mchakato wa ukuzaji, itabidi ujumuishe mara kadhaa baada ya kufanya mabadiliko kwenye msimbo wa chanzo ni vyema kuwa na kashe ya mkusanyaji ili kuharakisha urejeshaji wa siku zijazo.

Katika Linux, kuna huduma inayoitwa ccache, ambayo huharakisha urejeshaji kwa kuweka akiba mikusanyo ya hapo awali na kugundua wakati mkusanyo sawa unafanywa tena. Kando na C na C++, pia inasaidia Objective-C na Objective-C++.

Ccache ina vikwazo vichache tu: ni muhimu tu wakati wa kurejesha faili moja. Kwa aina zingine za mkusanyiko, mchakato utaishia kuendesha mkusanyaji halisi. Jambo hilo hilo hufanyika ikiwa bendera ya mkusanyaji haitumiki. Upande mkali ni kwamba kwa hali yoyote haitaingiliana na mkusanyiko halisi na haitatupa kosa - tu kurudi kwenye mkusanyaji halisi.

Wacha tusakinishe zana hii:

# yum install ccache 

na uone jinsi inavyofanya kazi na mfano.

Kujaribu Kikusanyaji cha GNU C kwa Mpango rahisi wa C++

Kwa mfano, hebu tutumie programu rahisi ya C++ ambayo huhesabu eneo la mstatili baada ya urefu na upana wake kutolewa kama pembejeo.

Fungua kihariri chako cha maandishi unachokipenda na uweke msimbo ufuatao, kisha uhifadhi kama 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; 
} 

Kukusanya nambari iliyo hapo juu kuwa eneo linaloweza kutekelezwa katika saraka ya sasa ya kufanya kazi tumia -o swichi na g++:

# g++ area.cpp -o area

Ikiwa unataka kuchukua fursa ya ccache, tayarisha tu amri hapo juu na ccache, kama ifuatavyo:

# ccache g++ area.cpp -o area 

Kisha endesha binary:

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

Usiruhusu mfano huu rahisi kukufanya ufikiri kwamba ccache haifai. Utakuja kujua nini ccache ya zana kubwa ni wakati wa kurejesha faili kubwa ya msimbo wa chanzo. Kanuni hiyo hiyo inatumika kwa programu za C pia.

Muhtasari

Katika makala hii tumeelezea jinsi ya kusakinisha na kutumia vikusanyaji vya GNU vya C na C++ katika ugawaji unaotegemea Fedora.

Kwa kuongeza, tulionyesha jinsi ya kutumia cache ya mkusanyaji ili kuharakisha marejesho ya msimbo sawa. Ingawa unaweza kurejelea kurasa za watu mtandaoni za gcc na g++ kwa chaguo na mifano zaidi, tunatarajia kusikia kutoka kwako ikiwa una maswali au maoni yoyote.