Διαφορά μεταξύ GCC και CC Compiler Η διαφορά μεταξύ

Anonim

GCC vs CC Compiler

Το CC είναι το όνομα που δίνεται στην εντολή μεταγλωττιστή UNIX. Χρησιμοποιείται ως προεπιλεγμένη εντολή μεταγλωττιστή για το λειτουργικό σας σύστημα και είναι εκτελέσιμο με την ίδια εντολή. Το GCC, από την άλλη πλευρά, είναι το λειτουργικό σύστημα GNU Compiler. Σε συστήματα που λειτουργούν με το GNU και το Linux, είναι σύνηθες να βρούμε το CC να είναι ένας σύνδεσμος έτσι ώστε τα scripts να μπορούν να χρησιμοποιήσουν τον μεταγλωττιστή εναλλακτικά και εύκολα. Υπάρχουν διάφορες διαφορές ως προς τη χρήση της συλλογής μεταγλωττιστή GNU και του μεταγλωττιστή CC. Αυτές οι διαφορές μπορούν γενικά να ομαδοποιηθούν σε δύο κύριες ομάδες. Ένα από αυτά είναι πιο συγκεκριμένο ενώ η άλλη ομάδα είναι πιο γενική.

Διαφορές

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

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

Στο Solaris ο κώδικας αντικειμένου που παράγεται από την εντολή compiler δεν είναι με κανέναν τρόπο συμβατό με τον κώδικα που παράγεται από το g ++, καθώς αυτοί είναι δύο ξεχωριστοί μεταγλωττιστές και οι συμβάσεις θα διαφέρουν. Τα κυριότερα σημεία διαφέρουν ως προς τον χειρισμό εξαιρέσεων και το μαλάκωμα των ονομάτων. Ωστόσο, είναι σημαντικό να σημειωθεί ότι το όνομα mangling είναι σημαντικό για να αποφευχθεί η σύνδεση των συμβατών αντικειμένων. Το γεγονός αυτό δείχνει ουσιαστικά ότι η χρήση μιας βιβλιοθήκης που συντάσσεται στο CC απαιτεί να συγκεντρωθεί ολόκληρο το πρόγραμμα στο CC. Επίσης, αν χρειαστεί να χρησιμοποιήσετε μια βιβλιοθήκη που έχει συνταχθεί με CC και άλλη με g ++, πρέπει να γίνει μια recompilation των βιβλιοθηκών για να εξασφαλιστεί η επιθυμητή λειτουργικότητα.

Στην ποιότητα του συναρμολογητή που δημιουργείται, το GCC, το οποίο είναι η συλλογή του GNU Compiler, είναι εξαιρετικά καλό σε αυτό το έργο. Οι εγγενείς μεταγλωττιστές πάντως λειτουργούν καλύτερα κατά περιόδους. Οι μεταγλωττιστές της Intel μπορούν να θεωρηθούν ότι έχουν λεπτομερείς βελτιστοποιήσεις που δεν έχουν ακόμη αναπαραχθεί στο ΣΣΚ.

Και οι δύο μεταγλωττιστές είναι όλοι νέοι με τα τρέχοντα πρότυπα, παρόλο που υπάρχουν μικρές διαφορές μεταξύ της γλώσσας των προτύπων και της γλώσσας που υποστηρίζει ο μεταγλωττιστής. Αυτά τα πρότυπα είναι (C ++ 98, C ++ 2003, C99).Η παλαιότερη υποστήριξη C89 είναι διαθέσιμη και στους δύο μεταγλωττιστές και η κατανόηση των αναμενόμενων απαντήσεων είναι ζωτικής σημασίας για να διασφαλιστεί ότι ο μεταγλωττιστής θα κυκλοφορήσει όπως αναμένεται. Όλα σε όλα τα GCC φαίνεται να επικεντρώνονται στο να κάνουν τη ζωή ευκολότερη λόγω των επεκτάσεων και ταιριάζει που μπορεί να γίνει σε αυτό για να πάρει το επιθυμητό αποτέλεσμα.

Περίληψη

Υπάρχει ένα πρόβλημα με τη διασταυρούμενη συμβατότητα των βιβλιοθηκών μεταγλωττιστών C και C ++.

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

Για να χρησιμοποιήσετε μια βιβλιοθήκη που αποτελείται από CC απαιτεί το σύνολο του προγράμματος να συντάσσεται με CC και όχι με το GCC.

Εάν έχετε μια βιβλιοθήκη που έχει συνταχθεί σε CC και g ++, μία από τις βιβλιοθήκες πρέπει να επανασυνταχθεί.

Το GCC κάνει μια θαυμάσια δουλειά στη δημιουργία συγκροτημάτων ποιότητας.

Και τα CC και τα GCC σε χαρακτηριστικά γλώσσας είναι μεγάλα σε σχέση με τα ισχύοντα πρότυπα.