c libraries how install
Αυτό το σεμινάριο βιβλιοθηκών C ++ θα εξηγήσει τι είναι οι βιβλιοθήκες στο C ++, τους τύπους τους μαζί με την εγκατάσταση και τη χρήση μιας τυπικής βιβλιοθήκης C ++:
Μια βιβλιοθήκη μπορεί να οριστεί ως ένα πακέτο κώδικα ή λειτουργιών που μπορούν να επαναχρησιμοποιηθούν. Διάφορες εφαρμογές μπορούν να χρησιμοποιούν την ίδια βιβλιοθήκη ξανά και ξανά. Έχοντας βιβλιοθήκες, επιτυγχάνουμε επαναχρησιμοποίηση, δηλαδή μία από τις αρχές του αντικειμενοστρεφούς προγραμματισμού.
Για παράδειγμα, μαθηματικές συναρτήσεις όπως sin, cos, tan, abs κ.λπ. μπορούν να μετατραπούν σε βιβλιοθήκη. Με αυτόν τον τρόπο δεν χρειάζεται να γράφουμε ξανά αυτές τις συναρτήσεις για κάθε εφαρμογή. Μπορούμε απλώς να αναφέρουμε τη βιβλιοθήκη και να χρησιμοποιήσουμε ξανά τον κωδικό στις εφαρμογές μας.
=> Επισκεφθείτε εδώ για να μάθετε C ++ από το μηδέν.
Τι θα μάθετε:
Βιβλιοθήκες C ++
Μια βιβλιοθήκη C ++ αποτελείται συνήθως από:
Ένα αρχείο κεφαλίδας: Αυτό καθορίζει τη λειτουργικότητα που προσφέρει η βιβλιοθήκη.
Ένα προκατασκευασμένο δυαδικό: Αυτό το αρχείο περιέχει την πραγματική εφαρμογή της λειτουργικότητας. Αυτή η εφαρμογή είναι μεταγλωττισμένη σε γλώσσα μηχανής.
Οι βιβλιοθήκες είναι μεταγλωττισμένες, καθώς δεν υπάρχει λόγος να μεταγλωττιστούν εκ νέου οι βιβλιοθήκες καθώς δεν αλλάζουν. Δεύτερον, καθώς οι προκατασκευασμένες βιβλιοθήκες είναι σε μορφή γλώσσας μηχανής, είναι ασφαλείς καθώς κανείς δεν μπορεί να έχει άμεση πρόσβαση σε αυτές. Έτσι ασφαλίζονται οι βιβλιοθήκες.
Στο C ++ έχουμε δύο τύπους βιβλιοθηκών:
- Στατικές βιβλιοθήκες
- Δυναμικές βιβλιοθήκες
Στατικές βιβλιοθήκες
Οι στατικές βιβλιοθήκες ονομάζονται επίσης αρχεία. Μια στατική βιβλιοθήκη είναι μια βιβλιοθήκη που γίνεται μέρος του εκτελέσιμου που αναφέρεται. Έτσι, όταν αναπτύσσουμε μια εφαρμογή και αναφέρουμε μια στατική βιβλιοθήκη σε αυτήν, το περιεχόμενο της στατικής βιβλιοθήκης αντικαθίσταται στην εφαρμογή.
Οι στατικές βιβλιοθήκες στα Windows έχουν συνήθως μια επέκταση '.lib' ενώ εκείνες στο Linux έχουν επέκταση '.a' (ή αρχείο).
διαφορά μεταξύ διακομιστή πελάτη και εφαρμογής που βασίζεται στον Ιστό
Ένα πλεονέκτημα της ύπαρξης στατικής βιβλιοθήκης αναφοράς προγράμματος είναι ότι δεν χρειάζεται να διανείμουμε τη στατική βιβλιοθήκη μαζί με την εκτελέσιμη. Αυτό συμβαίνει επειδή τα περιεχόμενα της στατικής βιβλιοθήκης αποτελούν μέρος των εφαρμογών και δεν υπάρχει ανάγκη να την δώσετε ξεχωριστά.
Αυτό το συγκεκριμένο πλεονέκτημα οδηγεί σε μειονέκτημα καθώς το εκτελέσιμο μπορεί να γίνει ογκώδες και σπαταλά πολύς χώρος καθώς η βιβλιοθήκη είναι μέρος του εκτελέσιμου.
Ένα άλλο μειονέκτημα της ύπαρξης στατικής βιβλιοθήκης είναι ότι εάν αλλάξει η στατική βιβλιοθήκη, τότε η εκτελέσιμη αναφορά πρέπει να ενημερωθεί επίσης.
Δυναμικές βιβλιοθήκες
Η δυναμική βιβλιοθήκη είναι επίσης γνωστή ως «κοινόχρηστη βιβλιοθήκη». Στα Windows, η δυναμική βιβλιοθήκη έχει την επέκταση '.dll' (δυναμική συνδεδεμένη βιβλιοθήκη). Στο Linux, η δυναμική βιβλιοθήκη έχει την επέκταση '.so' (κοινό αντικείμενο).
Μια δυναμική βιβλιοθήκη είναι μια βιβλιοθήκη που αποτελείται από ρουτίνες που φορτώνονται στην εφαρμογή κατά το χρόνο εκτέλεσης. Όταν μια εφαρμογή αναφέρεται σε μια δυναμική βιβλιοθήκη, τότε η βιβλιοθήκη δεν γίνεται μέρος της εφαρμογής αλλά παραμένει ως ξεχωριστή ενότητα.
Η δυναμική βιβλιοθήκη έχει ένα πλεονέκτημα ότι ένα αντίγραφο της βιβλιοθήκης μπορεί να μοιραστεί από πολλές εφαρμογές εξοικονομώντας χώρο. Ένα άλλο πλεονέκτημα είναι ότι, καθώς η δυναμική βιβλιοθήκη είναι μια ξεχωριστή μονάδα, η εκτελέσιμη εφαρμογή δεν αλλάζει όταν αλλάζει η δυναμική βιβλιοθήκη.
Το μόνο μειονέκτημα που έχει μια δυναμική βιβλιοθήκη είναι ότι απαιτεί ξεχωριστό πρόγραμμα για φόρτωση και αναφορά στη βιβλιοθήκη που μπορεί να είναι δυσκίνητη. Για να λύσουμε αυτό το πρόβλημα, χρησιμοποιούμε τη ρουτίνα 'εισαγωγή βιβλιοθήκης'.
Ενα εισαγωγή βιβλιοθήκης είναι ένας μηχανισμός που φορτώνει και χρησιμοποιεί μια δυναμική βιβλιοθήκη αυτόματα στο πρόγραμμα. Στα Windows, η βιβλιοθήκη εισαγωγής διατηρεί μια μικρή στατική βιβλιοθήκη (.lib) με το ίδιο όνομα με το αρχείο .dll και συνδέεται με το πρόγραμμα κατά τη στιγμή της μεταγλώττισης.
Μόλις γίνει αυτό, η δυναμική βιβλιοθήκη χρησιμοποιείται σαν να ήταν στατική βιβλιοθήκη. Στο λειτουργικό σύστημα Linux, η δυναμική βιβλιοθήκη ή το κοινόχρηστο αντικείμενο (.so) λειτουργεί ως βιβλιοθήκη εισαγωγής, καθώς και ως δυναμική βιβλιοθήκη. Οι περισσότεροι από τους συνδέσμους στο Linux OS είναι σε θέση να δημιουργήσουν μια βιβλιοθήκη εισαγωγής για μια δυναμική βιβλιοθήκη.
Πώς να εγκαταστήσετε και να χρησιμοποιήσετε βιβλιοθήκες C ++
Ας δούμε μερικά από τα βήματα που πρέπει να ακολουθήσουμε για να εγκαταστήσουμε αυτές τις βιβλιοθήκες και να τις χρησιμοποιήσουμε στην εφαρμογή μας.
# 1) Απόκτηση της βιβλιοθήκης
Για να χρησιμοποιήσουμε τη βιβλιοθήκη στην εφαρμογή μας, πρέπει πρώτα να αποκτήσουμε τη βιβλιοθήκη. Η βιβλιοθήκη μπορεί να είναι μεταγλωττισμένη - σε μια τέτοια περίπτωση πρέπει απλώς να κατεβάσετε τη βιβλιοθήκη για το λειτουργικό σύστημα. Εάν η βιβλιοθήκη δεν είναι μεταγλωττισμένη, τότε πρέπει να κατεβάσουμε τον πηγαίο κώδικα και να τον συντάξουμε στον υπολογιστή μας.
Στα παράθυρα, οι βιβλιοθήκες έχουν συνήθως επέκταση .zip ενώ στο λειτουργικό σύστημα Linux το πακέτο βιβλιοθήκης διανέμεται ως «.RPM».
# 2) Εγκαταστήστε τη βιβλιοθήκη
Το επόμενο βήμα μόλις λάβουμε τη βιβλιοθήκη είναι να εγκαταστήσουμε τη βιβλιοθήκη. Η εγκατάσταση στα Windows είναι τόσο απλή όσο η αποσυμπίεση των περιεχομένων της βιβλιοθήκης σε ένα φάκελο. Στο Linux, μπορούμε να καλέσουμε τον διαχειριστή πακέτων να εγκαταστήσει τη βιβλιοθήκη.
# 3) Συμπεριλάβετε τη διαδρομή βιβλιοθήκης για τον μεταγλωττιστή
Πρέπει να ορίσουμε τη διαδρομή της βιβλιοθήκης έτσι ώστε ο μεταγλωττιστής να γνωρίζει πού να ψάξει τα αρχεία της βιβλιοθήκης. Αυτός μπορεί να είναι κατάλογος «συμπερίληψης» στα Windows ή «/ usr / include» σε Linux.
# 4) Συνδέστε τη διαδρομή της βιβλιοθήκης
Αυτό το βήμα εκτελείται έτσι ώστε ο σύνδεσμος να γνωρίζει την ακριβή διαδρομή των βιβλιοθηκών που πρέπει να συνδέσει κατά τη διαδικασία σύνδεσης. Συνήθως, υπάρχει φάκελος '/ lib' στα Windows ή φάκελος '/ usr / lib' στο Linux που περιέχει όλες τις βιβλιοθήκες.
Μόλις εγκατασταθεί η βιβλιοθήκη, ο μεταγλωττιστής και ο σύνδεσμος γνωρίζουν τη διαδρομή της βιβλιοθήκης προς χρήση και η βιβλιοθήκη είναι έτοιμη για χρήση. Στο πρόγραμμά μας, μπορούμε να αναφερθούμε στη λειτουργικότητα της βιβλιοθήκης και καθώς έχουμε συμπεριλάβει τα αρχεία κεφαλίδας στο πρόγραμμά μας, ο μεταγλωττιστής θα είναι σε θέση να μεταγλωττίσει τη λειτουργικότητα.
Καθώς οι προγραμματιστές χρησιμοποιούν κυρίως IDE για ανάπτυξη, καθορίζουμε τη διαδρομή της βιβλιοθήκης στο ίδιο το IDE.
Τυπικές κεφαλίδες / βιβλιοθήκες στο C ++
Ας συζητήσουμε μερικές από τις τυπικές κεφαλίδες ή βιβλιοθήκες που χρησιμοποιεί η γλώσσα C ++. Έχουμε ήδη συζητήσει αυτές τις κεφαλίδες στα αντίστοιχα θέματα στα εκπαιδευτικά μας C ++.
Β τυπική βιβλιοθήκη
Το πρότυπο ANSI C καθορίζει το Τυπική βιβλιοθήκη ή βιβλιοθήκη που λειτουργεί ως τυπική βιβλιοθήκη για τη γλώσσα προγραμματισμού C. Το C ++ περιλαμβάνει κάθε κεφαλίδα από την τυπική βιβλιοθήκη C με διαφορετικό όνομα προσθέτοντας 'c' στην αρχή και αφαιρώντας το '.h' στο τέλος. Έτσι, η κεφαλίδα xxx.h στο C θα γίνει «cxxx» στο πρότυπο C ++.
Η τυπική βιβλιοθήκη C παρέχει τη λειτουργικότητα που σχετίζεται με μακροεντολές, χειρισμό συμβολοσειρών, ορισμούς τύπων μαθηματικών υπολογισμών, επεξεργασία εισόδου / εξόδου, διαχείριση μνήμης κ.λπ.
Ελεγχος εδώ για περισσότερες πληροφορίες σχετικά με την C Standard Library.
γενικός
Η γενική βιβλιοθήκη C ++ περιλαμβάνει τις ακόλουθες κεφαλίδες όπως φαίνεται παρακάτω.
Όνομα της κεφαλίδας | Περιγραφή |
---|---|
Ορίζει τη λειτουργικότητα για την πλειάδα. Διατίθεται από το C ++ 11 και μετά. | |
Οι αλγόριθμοι που χρησιμοποιούνται από πολλά κοντέινερ ορίζονται σε αυτήν την κεφαλίδα. | |
Περιλαμβάνει στοιχεία χρόνου όπως std :: chrono :: time_point, std :: chrono :: διάρκεια και ρολόγια. | |
Αυτή η κεφαλίδα παρέχει αντικείμενα συναρτήσεων για χρήση με γενικούς αλγόριθμους. | |
Περιέχει τάξεις και πρότυπα για επαναληπτικούς. | |
Καθορίζει τη λειτουργικότητα διαχείρισης μνήμης στο C ++. | |
Καθορίζει τυπικές κατηγορίες εξαιρέσεων όπως std :: logic_error και std :: runtime_error, και οι δύο προέρχονται από το std :: εξαίρεση. | |
Τα μαθήματα προτύπων όπως std :: pair κ.λπ. ή namespaces όπως std :: rel_ops ορίζονται σε αυτήν την κεφαλίδα. |
Ροές και είσοδος / έξοδος
Όνομα της κεφαλίδας | Περιγραφή |
---|---|
Περιέχει τη λειτουργικότητα της κλάσης προτύπου std :: ostream και άλλων υποστηρικτικών κλάσεων για έξοδο. | |
Παρέχει λειτουργικότητα για είσοδο-έξοδο βάσει αρχείων. | |
Περιέχει λειτουργικότητα για μορφοποίηση εξόδου όπως ακρίβεια, βάση κ.λπ. | |
Περιέχει βασικές λειτουργίες για λειτουργίες iostream. | |
Παρέχει προωθητικές δηλώσεις πολλών προτύπων κλάσης που σχετίζονται με I / O. | |
Παρέχει βασικά στοιχεία εισόδου και εξόδου C ++. | |
Περιέχει λειτουργικότητα της κλάσης προτύπου std :: istream και άλλων υποστηρικτικών κλάσεων για εισαγωγή. | |
Ορίζει την κλάση προτύπου std :: stringstream και άλλες τάξεις υποστήριξης που χρησιμοποιούνται για χειρισμό συμβολοσειρών. | |
Περιέχει λειτουργικότητα για ανάγνωση και εγγραφή σε / από συγκεκριμένους τύπους ακολουθιών χαρακτήρων, όπως εξωτερικά αρχεία ή συμβολοσειρές. |
Υποστήριξη γλώσσας
Όνομα-του-the-Header | Περιγραφή |
---|---|
Εφαρμόζει τη λειτουργικότητα για το std :: queue, μια ουρά με ένα άκρο και το std :: priority_queue, μια ουρά προτεραιότητας. | |
Αυτή η κεφαλίδα περιέχει διάφορους τύπους και λειτουργίες για χειρισμό εξαιρέσεων, συμπεριλαμβανομένης της κλάσης βάσης για όλες τις εξαιρέσεις, std :: εξαίρεση. | |
Αυτή η κεφαλίδα περιέχει την κλάση προτύπου std :: numeric_limits που χρησιμοποιείται για την περιγραφή βασικών αριθμητικών ιδιοτήτων | |
Περιέχει νέους χειριστές και διαγραφή και άλλες λειτουργίες που σχετίζονται με τις βασικές αρχές της διαχείρισης μνήμης C ++. | |
Παρέχει διευκολύνσεις για εργασία με πληροφορίες τύπου χρόνου εκτέλεσης C ++. |
Χορδές
Όνομα της κεφαλίδας | Περιγραφή |
---|---|
Αυτή η κεφαλίδα περιέχει τις τυπικές κλάσεις συμβολοσειρών και πρότυπα στο C ++. | |
Αυτό είναι νέο στο C ++ 11. Παρέχει βοηθητικά προγράμματα για συμβολοσειρές αντιστοίχισης μοτίβων χρησιμοποιώντας κανονικές εκφράσεις. |
Εντοπισμός
Όνομα-του-the-Header | Περιγραφή |
---|---|
Αυτή η κεφαλίδα έχει τοπικές λειτουργίες. Καθορίζει τάξεις και δηλώνει συναρτήσεις που ενσωματώνουν και χειρίζονται τις πληροφορίες που αφορούν συγκεκριμένα τις τοπικές ρυθμίσεις. | |
Περιέχει πτυχές μετατροπής κώδικα για διάφορες κωδικοποιήσεις χαρακτήρων. |
Εμπορευματοκιβώτια
Όνομα-του-the-Header | Περιγραφή |
---|---|
Περιέχει λειτουργικότητα για std :: array, ένα κοντέινερ για έναν πίνακα σταθερού μεγέθους. Νέα προσθήκη στα C ++ 11 και TR1. | |
Εξειδικευμένη κατηγορία κοντέινερ std :: bitset, bit array. | |
Περιέχει λειτουργικότητα για std :: deque, μια ουρά διπλού άκρου. | |
Κεφαλίδα για std :: forward_list, μια μεμονωμένη λίστα. Νέα προσθήκη στα C ++ 11 και TR1. | |
Περιέχει λειτουργικότητα για τη λίστα std :: list, μια διπλά συνδεδεμένη λίστα. | |
Περιέχει λειτουργικότητα για std :: map και std :: multimap, ταξινομημένο συσχετισμένο πίνακα και multimap. | |
Έχει την κεφαλίδα για std :: set και std :: multiset, ταξινομημένα συσχετιζόμενα κοντέινερ ή σύνολα. | |
Παρέχει την τάξη προσαρμογέα κοντέινερ std :: stack, stack. | |
Αυτή η κεφαλίδα περιέχει τη λειτουργικότητα std :: unordered_map και std :: unordered_multimap, hash tables. Νέο σε C ++ 11 και TR1. | |
Παρέχει λειτουργικότητα για std :: unordered_set και std :: unordered_multiset. Νέο σε C ++ 11 και TR1. | |
Παρέχει λειτουργικότητα για το std :: vector, έναν δυναμικό πίνακα. |
Βιβλιοθήκη υποστήριξης νημάτων
Όνομα της κεφαλίδας | Περιγραφή |
---|---|
Μια νέα τάξη και χώρος ονομάτων για εργασία με θέματα από το C ++ 11 και μετά. | |
Η νέα προσθήκη στο C ++ 11 και μετά. Παρέχει σίγαση, κλειδαριές, κλήση μία φορά κ.λπ., οι οποίοι είναι όλοι οι μηχανισμοί αμοιβαίου αποκλεισμού. | |
Περιέχει λειτουργικότητα για μεταβλητές συνθηκών που παρέχουν αρχικά συγχρονισμού που χρησιμοποιούνται για τον αποκλεισμό ενός νήματος έως ότου ειδοποιηθεί από κάποιο άλλο νήμα ότι πληρούται κάποια συνθήκη ή έως ότου επιτευχθεί χρόνος συστήματος. Η νέα προσθήκη για το C ++ 11 και μετά. | |
Αυτή η κεφαλίδα έχει τα στοιχεία που μπορεί να χρησιμοποιήσει ένα πρόγραμμα C ++ για ανάκτηση σε ένα νήμα και το αποτέλεσμα (τιμή ή εξαίρεση) από μια συνάρτηση που έχει εκτελεστεί στο ίδιο νήμα ή σε άλλο νήμα. |
Αριθμητική βιβλιοθήκη
Όνομα της κεφαλίδας | Περιγραφή |
---|---|
Η κεφαλίδα περιγράφει διάφορες λειτουργίες για την αναπαράσταση και τον χειρισμό πολύπλοκων αριθμών. Έχει επίσης ένα πρότυπο κλάσης για σύνθετους αριθμούς | |
Λειτουργικότητα δημιουργίας (ψευδο-) τυχαίων αριθμών | |
Αυτή η κεφαλίδα περιέχει - πρότυπα πέντε κατηγοριών (valarray, slice_array, gslice_array, mask_array και έμμεσο_array), - δύο τάξεις (φέτα και gslice), - Μια σειρά σχετικών προτύπων λειτουργιών για την αναπαράσταση και τον χειρισμό συστοιχιών τιμών. | |
Περιέχει γενικές αριθμητικές λειτουργίες. |
συμπέρασμα
Συζητήσαμε λεπτομερώς τις βιβλιοθήκες C ++ μαζί με τους τύπους τους και τα βήματα για την εγκατάσταση και ρύθμιση της βιβλιοθήκης.
Γνωρίσαμε ότι η τυπική βιβλιοθήκη C ++ περιέχει διάφορες κεφαλίδες που παρέχουν διαφορετικές λειτουργίες. Μπορούμε να χρησιμοποιήσουμε αυτές τις τυπικές κεφαλίδες βιβλιοθήκης για να αναπτύξουμε μια ποικιλία εφαρμογών στο C ++.
=> Δείτε ΟΛΟΥΣ τα μαθήματα C ++ εδώ.
Συνιστώμενη ανάγνωση
- Λειτουργίες βιβλιοθήκης στο C ++
- Τυπική βιβλιοθήκη προτύπων (STL): Μια σύντομη εισαγωγή
- Μια πλήρης επισκόπηση του C ++
- 70+ ΚΑΛΥΤΕΡΑ C ++ Tutorials για να μάθετε C ++ Προγραμματισμό ΔΩΡΕΑΝ
- Μορφοποίηση I / O: printf, sprintf, scanf Λειτουργίες στο C ++
- Βασικές λειτουργίες εισόδου / εξόδου στο C ++
- Λειτουργίες συμβολοσειράς στο C ++: getline, substring, string string & More