Επεξήγηση του μεταγλωττιστή C ++: Τι είναι ο μεταγλωττιστής και πώς το χρησιμοποιείτε;

Εισαγωγή στους μεταγλωττιστές C ++

Για να ξεκινήσετε με το C ++, θα πρέπει να μάθετε λίγα για τους μεταγλωττιστές και τον τρόπο λειτουργίας του C ++ στον υπολογιστή σας.

Όταν όλα λέγονται και γίνονται, οι υπολογιστές καταλαβαίνουν μόνο μία γλώσσα, τη γλώσσα του μηχανήματος. Η γλώσσα της μηχανής αποτελείται εξ ολοκλήρου από δυαδικά bit, ή 0s και 1s.

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

Η γλώσσα συναρμολόγησης είναι άμεση 1 προς 1 με τη γλώσσα μηχανής. Γλώσσες όπως C, C ++ και COBOL είναι λίγο υψηλότερες και πρέπει να καταρτιστούν. Πηγαίνει ακόμη υψηλότερα. Γλώσσες όπως το JavaScript και το Python έχουν στοιχεία που μεταφράζονται σε γλώσσες C ++ ή άλλες γλώσσες χαμηλού επιπέδου προτού καταρτιστούν, πράγμα που τις καθιστά «υψηλότερες» γλώσσες από τις C ή C ++.

Επειδή η αρχιτεκτονική του υπολογιστή αποτελείται από ηλεκτρονικούς διακόπτες και καλώδια που μπορούν να λειτουργήσουν μόνο με δυαδικά 1s και 0s, χρειάζεστε έναν μεταγλωττιστή για να μεταφράσετε τον κωδικό σας από υψηλό επίπεδο C ++ σε γλώσσα μηχανής που μπορεί να κατανοήσει η CPU.

Πώς λειτουργούν οι μεταγλωττιστές

Οι μεταγλωττιστές είναι βοηθητικά προγράμματα που παίρνουν τον κωδικό σας και τον μετατρέπουν σε εκτελέσιμα αρχεία κώδικα μηχανήματος.

Όταν εκτελείτε έναν μεταγλωττιστή στον κωδικό σας, πρώτα, ο προεπεξεργαστής διαβάζει τον πηγαίο κώδικα (το αρχείο C ++ που μόλις γράψατε). Ο προεπεξεργαστής αναζητά οποιεσδήποτε οδηγίες προεπεξεργαστή (γραμμές κώδικα που ξεκινούν με #). Οι οδηγίες του προεπεξεργαστή προκαλούν τον προεπεξεργαστή να αλλάξει τον κώδικά σας με κάποιο τρόπο (προσθέτοντας συνήθως κάποια βιβλιοθήκη ή άλλο αρχείο C ++).

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

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

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

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

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

Πώς να μεταγλωττίσετε ένα αρχείο

Ας υποθέσουμε ότι έχετε ένα αρχείο C ++ που ονομάζεται helloWorld.cpp

Εάν χρησιμοποιείτε Windows

Χρήση και IDE όπως CodeBlocks

Είναι τόσο απλό όσο κάνοντας κλικ στα κουμπιά build και run, θα δημιουργήσουν ένα αρχείο στο φάκελο του έργου.

π.χ.

Χρήση γραμμής εντολών

  1. Ανοίξτε μια γραμμή εντολών προγραμματιστή - Για αυτό το βήμα, θα πρέπει να έχετε Microsoft Visual Studio ή κάποιο άλλο IDE που σας επιτρέπει να μεταγλωττίσετε το πρόγραμμά σας από τη γραμμή εντολών. Μπορείτε επίσης να πραγματοποιήσετε αναζήτηση στο διαδίκτυο για μεταγλωττιστές C ++.
  2. Μεταβείτε απευθείας στον πηγαίο κώδικα
  3. Εκτελέστε το μεταγλωττιστή στον πηγαίο κώδικα (υποθέτοντας ότι χρησιμοποιείτε το μεταγλωττιστή Microsoft Visual Studio) cl /EHsc helloWorld.cpp

Αυτό θα δημιουργήσει τώρα ένα αρχείο αντικειμένου και θα το συνδέσει αυτόματα για εσάς. Εάν κοιτάξετε στον ίδιο φάκελο, θα δείτε ένα εκτελέσιμο αρχείο hellWorld.exe (σημειώστε ότι η επέκταση exe) είναι πλέον παρούσα.

  1. Πληκτρολογήστε helloWorldτην προτροπή για να εκτελέσετε το εκτελέσιμο

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

Εάν χρησιμοποιείτε Linux ή OSX

  1. Ανοίξτε ένα παράθυρο τερματικού και μεταβείτε στον κατάλογο του πηγαίου κώδικα
  2. Εκτελέστε το μεταγλωττιστή στον πηγαίο κώδικα g++ helloWorld.cpp -o helloWorld

Αυτό θα δημιουργήσει ένα αρχείο αντικειμένου και θα το συνδέσει αυτόματα για εσάς. Κοιτάξτε στο φάκελο και θα δείτε ένα εκτελέσιμο αρχείο helloWorld.exe (σημειώστε την επέκταση exe).

  1. Πληκτρολογήστε ./helloWorldτο παράθυρο τερματικού για να εκτελέσετε το εκτελέσιμο αρχείο

Το g ++ είναι ο τυπικός μεταγλωττιστής Linux και είναι ένα εξαιρετικό βοηθητικό πρόγραμμα. Διατίθεται συσκευασμένο με το λειτουργικό σύστημα.

ΣΗΜΕΙΩΣΗ: για να μεταγλωττίσετε και να εκτελέσετε τον κώδικά σας απευθείας, εκτελέστε g++ -o helloWorld helloWorld.cpp; ./helloWorldέτσι όταν πρέπει να μεταγλωττίσετε και να εκτελέσετε τον κωδικό σας πολλές φορές, εισάγετε το επάνω βέλος.

Υπάρχουν διάφοροι τύποι μεταγλωττιστών. Τα δύο που αναφέρονται είναι τα δύο που συνήθως συσκευάζονται με Windows ή Linux / OSX.

Περισσότερες πληροφορίες για το C ++

  • Εισαγωγή στον προγραμματισμό C ++
  • Αντικειμενοστραφής προγραμματισμός στο C ++
  • Αλγόριθμοι γραφημάτων και δομές δεδομένων που εξηγούνται στα C ++ και Java
  • Πώς να μεταγλωττίσετε τον κωδικό C ++ στον κώδικα VS