Πώς να εγκαταστήσετε το GNU GCC (C and C++ Compiler) και τα Εργαλεία Ανάπτυξης σε RHEL/CentOS και Fedora


Σήμερα, ως διαχειριστής συστήματος ή μηχανικός δεν μπορείτε να αισθάνεστε ικανοποιημένοι γνωρίζοντας πώς να χρησιμοποιείτε το CLI και να αντιμετωπίζετε προβλήματα με τους διακομιστές GNU/Linux, αλλά θα χρειαστεί να προχωρήσετε ένα βήμα παραπέρα στην περιοχή ανάπτυξης για να παραμείνετε στην κορυφή του παιχνιδιού σας . Εάν σκέφτεστε μια καριέρα στην ανάπτυξη πυρήνα ή εφαρμογές για Linux, τότε η C ή η C++ είναι το καλύτερο μέρος για να ξεκινήσετε.

Διαβάστε επίσης: Εγκαταστήστε τα C, C++ και Build Essential Tools στο Debian/Ubuntu/Mint

Σε αυτό το άρθρο θα εξηγήσουμε πώς να εγκαταστήσετε τους μεταγλωττιστές Gnu C και C++ και τα σχετικά εργαλεία ανάπτυξης, όπως automake, autoconf, flex, bison, κ.λπ. σε συστήματα Fedora και CentOS/RHEL.

Τι είναι ο Compiler;

Με απλά λόγια, ένας μεταγλωττιστής είναι ένα πρόγραμμα λογισμικού που μετατρέπει δηλώσεις γραμμένες σε μια γλώσσα πηγής σε μια γλώσσα στόχο που η CPU του μηχανήματος μπορεί να κατανοήσει και να εκτελέσει.

Στο Fedora και τα παράγωγα (στην πραγματικότητα, αυτό ισχύει και για ολόκληρο το οικοσύστημα διανομής Linux), οι πιο γνωστοί μεταγλωττιστές C και C++ είναι ο gcc και g++, αντίστοιχα, που αναπτύχθηκαν και υποστηρίζονται ενεργά από το Ίδρυμα Ελεύθερου Λογισμικού ως μέρος του έργου GNU.

Εγκατάσταση GCC (C++ Compiler and Development Tools

Εάν τα gcc και/ή g++ και τα σχετικά Εργαλεία ανάπτυξης δεν είναι εγκατεστημένα στο σύστημά σας από προεπιλογή, μπορείτε να εγκαταστήσετε τα πιο πρόσφατα διαθέσιμα από τα αποθετήρια ως εξής:

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

Πριν ξεκινήσουμε τη σύνταξη κώδικα C ή C++, υπάρχει ένα άλλο εργαλείο για την ενίσχυση του συνόλου εργαλείων ανάπτυξής σας που θέλουμε να σας δείξουμε.

Επιτάχυνση των μεταγλωττίσεων C και C++ στο Linux

Όταν ως μέρος της διαδικασίας ανάπτυξης, πρέπει να κάνετε εκ νέου μεταγλώττιση αρκετές φορές αφού κάνετε αλλαγές στον πηγαίο κώδικα, είναι υπέροχο να έχετε μια προσωρινή μνήμη μεταγλωττιστή για να επιταχύνετε τις μελλοντικές εκ νέου μεταγλώττιση.

Στο Linux, υπάρχει ένα βοηθητικό πρόγραμμα που ονομάζεται ccache, το οποίο επιταχύνει την εκ νέου μεταγλώττιση αποθηκεύοντας στην προσωρινή μνήμη προηγούμενες μεταγλωττίσεις και εντοπίζοντας πότε γίνεται ξανά η ίδια μεταγλώττιση. Εκτός από το C και το C++, υποστηρίζει επίσης τα Objective-C και Objective-C++.

Η Ccache έχει μόνο μερικούς περιορισμούς: είναι χρήσιμο μόνο κατά την εκ νέου μεταγλώττιση ενός μεμονωμένου αρχείου. Για άλλους τύπους μεταγλωττίσεων, η διαδικασία θα καταλήξει να τρέχει τον πραγματικό μεταγλωττιστή. Το ίδιο συμβαίνει εάν δεν υποστηρίζεται μια σημαία μεταγλωττιστή. Η θετική πλευρά είναι ότι σε καμία περίπτωση δεν θα επηρεάσει την πραγματική μεταγλώττιση και δεν θα προκαλέσει σφάλμα - απλώς επιστρέψτε στον πραγματικό μεταγλωττιστή.

Ας εγκαταστήσουμε αυτό το εργαλείο:

# yum install ccache 

και δείτε πώς λειτουργεί με ένα παράδειγμα.

Δοκιμή του GNU C Compiler με ένα απλό πρόγραμμα C++

Για παράδειγμα, ας χρησιμοποιήσουμε ένα απλό πρόγραμμα C++ που υπολογίζει το εμβαδόν ενός ορθογωνίου αφού το μήκος και το πλάτος του έχουν παρασχεθεί ως είσοδοι.

Ανοίξτε το αγαπημένο σας πρόγραμμα επεξεργασίας κειμένου και εισαγάγετε τον ακόλουθο κώδικα και, στη συνέχεια, αποθηκεύστε ως 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; 
} 

Για να μεταγλωττίσετε τον παραπάνω κώδικα σε μια εκτελέσιμη περιοχή με όνομα στον τρέχοντα κατάλογο εργασίας χρησιμοποιήστε τον διακόπτη -o με g++:

# g++ area.cpp -o area

Εάν θέλετε να επωφεληθείτε από την cache, απλώς συνδέστε την παραπάνω εντολή με cache, ως εξής:

# ccache g++ area.cpp -o area 

Στη συνέχεια, εκτελέστε το δυαδικό:

./area
Δείγμα εξόδου
Enter the length of the rectangle: 2.5
Now enter the width: 3.7
The area of the rectangle is: 9.25

Μην αφήσετε αυτό το απλό παράδειγμα να σας κάνει να πιστεύετε ότι η cache δεν είναι χρήσιμη. Θα μάθετε τι εξαιρετικό εργαλείο είναι η cache κατά την εκ νέου μεταγλώττιση ενός μεγάλου αρχείου πηγαίου κώδικα. Η ίδια αρχή ισχύει και για τα προγράμματα C.

Περίληψη

Σε αυτό το άρθρο εξηγήσαμε πώς να εγκαταστήσετε και να χρησιμοποιήσετε τους μεταγλωττιστές GNU για C και C++ σε διανομές που βασίζονται στο Fedora.

Επιπλέον, δείξαμε πώς να χρησιμοποιήσετε μια προσωρινή μνήμη μεταγλωττιστή για να επιταχύνετε τις εκ νέου μεταγλώττιση του ίδιου κώδικα. Αν και μπορείτε να ανατρέξετε στις διαδικτυακές σελίδες man για gcc και g++ για περαιτέρω επιλογές και παραδείγματα, ανυπομονούμε να ακούσουμε από εσάς εάν έχετε ερωτήσεις ή σχόλια.