GNU GCC (C we C ++ Compiler) we RHEL/CentOS we Fedora-da ösüş gurallaryny nädip gurmaly?


Häzirki wagtda ulgam dolandyryjysy ýa-da inerener hökmünde CLI-ni nädip ulanmalydygyny we GNU/Linux serwerlerini nädip çözüp biljekdigiňizi kanagatlandyryp bilmersiňiz, ýöne oýnuňyzyň başynda galmak üçin ösüş meýdanyna bir ädim öňe gitmeli bolarsyňyz. . Ernadrosy ösdürmek ýa-da Linux üçin amaly programmalar boýunça karýerany göz öňünde tutýan bolsaňyz, başlamak üçin iň gowy ýer C ýa-da C ++.

Şeýle hem okaň: C, C ++ guruň we Debian/Ubuntu/Mint-da zerur gurallary guruň

Bu makalada Gnu C we C ++ düzüjilerini nädip gurmalydygyny we Fedora we CentOS/RHEL ulgamlarynda awtoulag, awtokonf, flex, bison we ş.m. bilen baglanyşykly Ösüş gurallaryny düşündireris.

Kompiler näme?

Simpleönekeý sözler bilen aýdylanda, düzüji, çeşme dilinde ýazylan jümleleri enjamyň CPU-nyň düşünip we ýerine ýetirip biljek maksatly dile öwürýän programma üpjünçiligi programmasydyr.

Fedora we öndürijilerde (aslynda bu tutuş Linux distro ekosistemasy üçin hem dogry) iň meşhur C we C ++ düzüjiler degişlilikde gcc we g ++ bolup, erkin programma üpjünçiligi gaznasy tarapyndan işlenip düzüldi we goldanyldy. GNU taslamasy.

GCC (C ++ düzüjisi we ösüş gurallary) gurmak

Gcc we/ýa-da g ++ we onuň bilen baglanyşykly Ösüş Gurallary ulgamyňyzda gurulmadyk bolsa, ammarlardan iň täzelerini aşakdaky ýaly gurnap bilersiňiz:

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

C ýa-da C ++ koduny ýazmazdan ozal, size görkezmek isleýän ösüş gurallaryňyzy ösdürmek üçin başga bir gural bar.

Linux-da C we C ++ ýygyndylaryny çaltlaşdyrmak

Ösüş prosesiniň bir bölegi hökmünde, deslapky koda üýtgeşmeler girizeniňizden soň birnäçe gezek täzeden düzmeli bolarsyňyz, geljekdäki düzedişleri çaltlaşdyrmak üçin düzüjiniň keşi bolmagy gaty gowy zat.

Linux-da, ccache atly bir peýdaly zat bar, ol öňki ýygyndylary keşlemek we şol bir ýygyndynyň gaýtadan ýerine ýetirilişini anyklamak arkaly gaýtadan düzülmegi çaltlaşdyrýar. C we C ++ -dan başga-da, Objective-C we Objective-C ++ goldaýar.

Keşiň diňe birnäçe çäklendirmeleri bar: diňe bir faýly täzeden ýazanyňyzda peýdaly. Beýleki ýygyndylar üçin amal hakyky düzüjini işleder. Eger düzüjiniň baýdagy goldanylmasa, şol bir zat bolýar. Iň oňat tarapy, islendik ýagdaýda hakyky düzülmegine päsgel bermez we ýalňyşlyk goýbermez - diňe hakyky düzüjä gaýdyp geliň.

Geliň, bu guraly guralyň:

# yum install ccache 

we mysal bilen nähili işleýändigini görüň.

Gönekeý C ++ programmasy bilen GNU C düzüjini barlamak

Mysal üçin, geliň, uzynlygy we ini giriş hökmünde üpjün edilenden soň gönüburçlugyň meýdanyny hasaplaýan ýönekeý C ++ programmasyny ulanalyň.

Halaýan tekst redaktoryňyzy açyň we aşakdaky kody giriziň, soňra area.cpp görnüşinde saklaň:

#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; 
} 

Aboveokardaky kody häzirki iş katalogynda ýerine ýetirip boljak bir ýere jemlemek üçin -o wyklýuçatelini g ++ bilen ulanyň:

# g++ area.cpp -o area

Keşden peýdalanmak isleseňiz, ýokardaky buýrugy keş görnüşi bilen aşakdaky ýaly goşuň:

# ccache g++ area.cpp -o area 

Soňra ikili işlediň:

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

Bu ýönekeý mysal, keş keşiniň peýdaly däldigini pikir etmegine ýol bermäň. Uly çeşme kody faýly täzeden düzülende ajaýyp gural keşiniň nämedigini bilersiňiz. Şol prinsip C programmalaryna-da degişlidir.

Gysgaça mazmun

Bu makalada Fedora esasly paýlamalarda C we C ++ üçin GNU düzüjilerini nädip gurmalydygyny we ulanmalydygyny düşündirdik.

Mundan başga-da, şol bir koduň gaýtalanmagyny çaltlaşdyrmak üçin düzüjiniň keşini nädip ulanmalydygyny görkezdik. Goşmaça wariantlar we mysallar üçin gcc we g ++ üçin onlaýn adam sahypalaryna ýüz tutup bilersiňiz, soraglaryňyz ýa-da teswirleriňiz bar bolsa, sizden garaşýarys.