c libraries how install
In diesem Tutorial zu C ++ - Bibliotheken werden die Bibliotheken in C ++, ihre Typen sowie die Installation und Verwendung einer C ++ - Standardbibliothek erläutert:
Eine Bibliothek kann als wiederverwendbares Code- oder Funktionspaket definiert werden. Verschiedene Anwendungen können immer wieder dieselbe Bibliothek verwenden. Durch Bibliotheken erreichen wir Wiederverwendbarkeit, d. H. Eines der Prinzipien der objektorientierten Programmierung.
Zum Beispiel, mathematische Funktionen wie sin, cos, tan, abs usw. können in eine Bibliothek umgewandelt werden. Auf diese Weise müssen wir diese Funktionen nicht für jede Anwendung immer wieder neu schreiben. Wir können einfach auf die Bibliothek verweisen und den Code in unseren Anwendungen wiederverwenden.
=> Besuchen Sie hier, um C ++ von Grund auf neu zu lernen.
Was du lernen wirst:
C ++ - Bibliotheken
Eine C ++ - Bibliothek besteht normalerweise aus:
Eine Header-Datei: Dies definiert die Funktionalität, die die Bibliothek anbietet.
Eine vorkompilierte Binärdatei: Diese Datei enthält die eigentliche Implementierung der Funktionalität. Diese Implementierung ist in eine Maschinensprache vorkompiliert.
Bibliotheken werden vorkompiliert, da es keinen Grund gibt, die Bibliotheken neu zu kompilieren, da sie sich kaum ändern. Zweitens sind die vorkompilierten Bibliotheken in einer maschinensprachlichen Form gesichert, da niemand direkt auf sie zugreifen kann. Damit sind die Bibliotheken gesichert.
In C ++ gibt es zwei Arten von Bibliotheken:
- Statische Bibliotheken
- Dynamische Bibliotheken
Statische Bibliotheken
Statische Bibliotheken werden auch als Archive bezeichnet. Eine statische Bibliothek ist eine Bibliothek, die Teil der ausführbaren Datei wird, die darauf verweist. Wenn wir also eine Anwendung entwickeln und auf eine statische Bibliothek darin verweisen, wird der Inhalt der statischen Bibliothek in der Anwendung ersetzt.
Die statischen Bibliotheken unter Windows haben normalerweise die Erweiterung '.lib', während die unter Linux die Erweiterung '.a' (oder das Archiv) haben.
beste Software zur Behebung von Computerproblemen
Ein Vorteil einer statischen Programmreferenzbibliothek besteht darin, dass wir die statische Bibliothek nicht zusammen mit der ausführbaren Datei verteilen müssen. Dies liegt daran, dass der Inhalt der statischen Bibliothek Teil der Anwendungen ist und nicht separat angegeben werden muss.
Dieser spezielle Vorteil führt zu einem Nachteil, da die ausführbare Datei sperrig werden kann und zu viel Speicherplatz verschwendet wird, da die Bibliothek Teil der ausführbaren Datei ist.
Ein weiterer Nachteil einer statischen Bibliothek besteht darin, dass bei Änderungen der statischen Bibliothek auch die ausführbare Referenzdatei aktualisiert werden muss.
Dynamische Bibliotheken
Die dynamische Bibliothek wird auch als 'gemeinsam genutzte Bibliothek' bezeichnet. In Windows hat die dynamische Bibliothek die Erweiterung '.dll' (dynamisch verknüpfte Bibliothek). Unter Linux hat die dynamische Bibliothek die Erweiterung '.so' (freigegebenes Objekt).
Eine dynamische Bibliothek ist eine Bibliothek, die aus Routinen besteht, die zur Laufzeit in die Anwendung geladen werden. Wenn eine Anwendung auf eine dynamische Bibliothek verweist, wird die Bibliothek nicht Teil der Anwendung, sondern bleibt als separate Einheit.
Die dynamische Bibliothek hat den Vorteil, dass eine Kopie der Bibliothek von vielen Anwendungen gemeinsam genutzt werden kann, wodurch Platz gespart wird. Ein weiterer Vorteil besteht darin, dass sich die ausführbare Anwendungsdatei nicht ändert, wenn sich die dynamische Bibliothek ändert, da die dynamische Bibliothek eine separate Einheit ist.
Der einzige Nachteil einer dynamischen Bibliothek besteht darin, dass zum Laden und Verweisen auf die Bibliothek ein separates Programm erforderlich ist, was umständlich sein kann. Um dieses Problem zu lösen, verwenden wir die Routine 'Bibliothek importieren'.
Ein Bibliothek importieren ist ein Mechanismus, der eine dynamische Bibliothek automatisch in das Programm lädt und verwendet. Unter Windows behält die Importbibliothek eine kleine statische Bibliothek (.lib) bei, die denselben Namen wie die DLL-Datei hat und zur Kompilierungszeit mit dem Programm verknüpft ist.
Sobald dies erledigt ist, wird die dynamische Bibliothek so verwendet, als wäre sie eine statische Bibliothek. Unter dem Linux-Betriebssystem fungiert die dynamische Bibliothek oder die gemeinsam genutzte Objektdatei (.so) sowohl als Importbibliothek als auch als dynamische Bibliothek. Die meisten Linker unter Linux können eine Importbibliothek für eine dynamische Bibliothek erstellen.
So installieren und verwenden Sie C ++ - Bibliotheken
Sehen wir uns einige der Schritte an, die wir ausführen müssen, um diese Bibliotheken zu installieren und in unserer Anwendung zu verwenden.
# 1) Erwerb der Bibliothek
Um die Bibliothek in unserer Anwendung verwenden zu können, müssen wir zuerst die Bibliothek erwerben. Die Bibliothek kann vorkompiliert werden. In diesem Fall müssen wir nur die Bibliothek für das Betriebssystem herunterladen. Wenn die Bibliothek nicht vorkompiliert ist, müssen wir den Quellcode herunterladen und auf unserem Computer kompilieren.
Unter Windows haben die Bibliotheken normalerweise die Erweiterung .zip, während unter Linux das Bibliothekspaket als '.RPM' verteilt wird.
# 2) Installieren Sie die Bibliothek
Der nächste Schritt, sobald wir die Bibliothek erhalten haben, ist die Installation der Bibliothek. Die Installation unter Windows ist so einfach wie das Entpacken des Inhalts der Bibliothek in einen Ordner. Unter Linux können wir den Paketmanager aufrufen, um die Bibliothek zu installieren.
# 3) Geben Sie den Bibliothekspfad für den Compiler an
Wir müssen den Pfad der Bibliothek festlegen, damit der Compiler weiß, wo er nach den Bibliotheksdateien suchen muss. Dies kann unter Windows das Verzeichnis 'include' oder unter Linux das Verzeichnis '/ usr / include' sein.
# 4) Verknüpfen Sie den Bibliothekspfad
Dieser Schritt wird ausgeführt, damit der Linker den genauen Pfad der Bibliotheken kennt, die er während des Verknüpfungsprozesses verknüpfen muss. Normalerweise gibt es unter Windows den Ordner '/ lib' oder unter Linux den Ordner '/ usr / lib', der alle Bibliotheken enthält.
Sobald die Bibliothek installiert ist, kennen der Compiler und der Linker den Pfad der zu verwendenden Bibliothek und die Bibliothek ist einsatzbereit. In unserem Programm können wir auf die Bibliotheksfunktionalität verweisen, und da wir die Header-Dateien in unser Programm aufgenommen haben, kann der Compiler die Funktionalität kompilieren.
Da Programmierer meistens IDEs für die Entwicklung verwenden, geben wir den Bibliothekspfad in der IDE selbst an.
Standardheader / -bibliotheken in C ++
Lassen Sie uns einige der Standardheader oder -bibliotheken diskutieren, die die C ++ - Sprache verwendet. Wir haben diese Header bereits in ihren jeweiligen Themen in unseren C ++ - Tutorials besprochen.
C Standardbibliothek
Der ANSI C-Standard spezifiziert die C Standardbibliothek oder libc das fungiert als Standardbibliothek für die Programmiersprache C. C ++ enthält jeden Header aus der C-Standardbibliothek unter einem anderen Namen, indem am Anfang 'c' hinzugefügt und am Ende '.h' entfernt wird. Daher wird der Header xxx.h in C im C ++ - Standard zu 'cxxx'.
Die C-Standardbibliothek bietet unter anderem Funktionen in Bezug auf Makros, Zeichenfolgenbehandlung, mathematische Berechnungen, Typdefinitionen, Eingabe- / Ausgabeverarbeitung, Speicherverwaltung usw.
Prüfen Hier Weitere Informationen zur C Standard Library.
Allgemeines
Die allgemeine C ++ - Bibliothek enthält die folgenden Header (siehe unten).
Name des Headers | Beschreibung |
---|---|
Definiert die Funktionalität für das Tupel. Verfügbar ab C ++ 11. | |
In diesem Header werden von vielen Containern verwendete Algorithmen definiert. | |
Enthält Zeitelemente wie std :: chrono :: time_point, std :: chrono :: duration und clocks. | |
Dieser Header enthält Funktionsobjekte, die mit allgemeinen Algorithmen verwendet werden können. | |
Enthält Klassen und Vorlagen für Iteratoren. | |
Definiert die Speicherverwaltungsfunktionalität in C ++. | |
Definiert Standardausnahmeklassen, einschließlich std :: logic_error und std :: runtime_error, die beide von std :: exception abgeleitet sind. | |
In diesem Header werden Vorlagenklassen wie std :: pair usw. oder Namespaces wie std :: rel_ops definiert. |
Streams und Input / Output
Name des Headers | Beschreibung |
---|---|
Enthält die Funktionalität der Vorlagenklasse std :: ostream und anderer unterstützender Klassen für die Ausgabe. | |
Bietet Funktionen für die dateibasierte Eingabe / Ausgabe. | |
Enthält Funktionen für die Ausgabeformatierung wie Präzision, Basis usw. | |
Enthält grundlegende Funktionen für iostream-Vorgänge. | |
Bietet Vorwärtsdeklarationen mehrerer E / A-bezogener Klassenvorlagen. | |
Bietet Grundlagen für die Eingabe und Ausgabe von C ++. | |
Enthält Funktionen der Vorlagenklasse std :: istream und anderer unterstützender Klassen für die Eingabe. | |
Definiert die Vorlagenklasse std :: stringstream und andere unterstützende Klassen, die für die Zeichenfolgenmanipulation verwendet werden. | |
Enthält Funktionen zum Lesen und Schreiben in / aus bestimmten Arten von Zeichenfolgen, z. B. externen Dateien oder Zeichenfolgen. |
Sprachunterstützung
Name des Headers | Beschreibung |
---|---|
Implementiert die Funktionalität für std :: queue, eine Warteschlange mit einem Ende, und std :: priority_queue, eine Prioritätswarteschlange. | |
Dieser Header enthält verschiedene Typen und Funktionen für die Ausnahmebehandlung, einschließlich der Basisklasse für alle Ausnahmen, std :: exception. | |
Dieser Header enthält die Vorlagenklasse std :: numeric_limits, die zur Beschreibung grundlegender numerischer Eigenschaften verwendet wird | |
Enthält Operatoren new und delete sowie andere Funktionen, die sich auf die Grundlagen der C ++ - Speicherverwaltung beziehen. | |
Bietet Funktionen zum Arbeiten mit Informationen zum C ++ - Laufzeittyp. |
Saiten
Name des Headers | Beschreibung |
---|---|
Dieser Header enthält die Standardzeichenfolgenklassen und -vorlagen in C ++. | |
Dies ist neu in C ++ 11. Bietet Dienstprogramme für Mustervergleichszeichenfolgen mit regulären Ausdrücken. |
Lokalisierung
Name des Headers | Beschreibung |
---|---|
Dieser Header verfügt über Gebietsschemafunktionen. Es definiert Klassen und deklariert Funktionen, die die für ein Gebietsschema spezifischen Informationen kapseln und bearbeiten. | |
Enthält Facetten zur Codekonvertierung für verschiedene Zeichencodierungen. |
Behälter
Name des Headers | Beschreibung |
---|---|
Enthält Funktionen für std :: array, einen Container für ein Array mit fester Größe. Neuzugang in C ++ 11 und TR1. | |
Spezialisierte Containerklasse std :: bitset, ein Bitarray. | |
Enthält Funktionen für std :: deque, eine Warteschlange mit zwei Enden. | |
Header für std :: forward_list, eine einfach verknüpfte Liste. Neuzugang in C ++ 11 und TR1. | |
Enthält Funktionen für std :: list, eine doppelt verknüpfte Liste. | |
Enthält Funktionen für std :: map und std :: multimap, sortiertes assoziatives Array und multimap. | |
Hat den Header für std :: set und std :: multiset, sortierte assoziative Container oder Sets. | |
Stellt die Containeradapterklasse std :: stack, einen Stack, bereit. | |
Dieser Header enthält die Funktionen std :: unordered_map und std :: unordered_multimap, Hash-Tabellen. Neu in C ++ 11 und TR1. | |
Bietet Funktionen für std :: unordered_set und std :: unordered_multiset. Neu in C ++ 11 und TR1. | |
Bietet Funktionen für std :: vector, ein dynamisches Array. |
Thread-Unterstützungsbibliothek
Name des Headers | Beschreibung |
---|---|
Eine neue Klasse und ein neuer Namespace für die Arbeit mit Threads ab C ++ 11. | |
Der neue Zusatz ab C ++ 11. Es bietet Mutexe, Sperren, einmalige Anrufe usw., die alle Mechanismen zum gegenseitigen Ausschluss sind. | |
Enthält Funktionen für Bedingungsvariablen, die Synchronisationsprimitive bereitstellen, die zum Blockieren eines Threads verwendet werden, bis ein anderer Thread benachrichtigt, dass eine Bedingung erfüllt ist, oder bis eine Systemzeit erreicht ist. Der Neuzugang ab C ++ 11. | |
Dieser Header enthält die Komponenten, mit denen ein C ++ - Programm in einem Thread abrufen kann, und das Ergebnis (Wert oder Ausnahme) einer Funktion, die im selben Thread oder in einem anderen Thread ausgeführt wurde. |
Numerische Bibliothek
Name des Headers | Beschreibung |
---|---|
Der Header beschreibt verschiedene Funktionen zum Darstellen und Bearbeiten komplexer Zahlen. Es hat auch eine Klassenvorlage für komplexe Zahlen | |
Funktionalität zur Erzeugung von (Pseudo-) Zufallszahlen | |
Dieser Header enthält - fünf Klassenvorlagen (Valarray, Slice-Array, Gslice-Array, Mask-Array und indirektes Array), - zwei Klassen (Slice und Gslice), - Eine Reihe verwandter Funktionsvorlagen zur Darstellung und Bearbeitung von Wertearrays. | |
Enthält allgemeine numerische Operationen. |
Fazit
Wir haben die C ++ - Bibliotheken zusammen mit ihren Typen und den Schritten zum Installieren und Einrichten der Bibliothek ausführlich besprochen.
Wir haben erfahren, dass die Standard-C ++ - Bibliothek verschiedene Header enthält, die unterschiedliche Funktionen bieten. Wir können diese Standardbibliotheksheader verwenden, um eine Vielzahl von Anwendungen in C ++ zu entwickeln.
=> Überprüfen Sie ALLE C ++ - Tutorials hier.
Literatur-Empfehlungen
- Bibliotheksfunktionen in C ++
- Standard Template Library (STL): Eine kurze Einführung
- Ein vollständiger Überblick über C ++
- Über 70 BEST C ++ - Tutorials zum kostenlosen Erlernen der C ++ - Programmierung
- Formatieren von E / A: printf, sprintf, scanf Funktionen in C ++
- Grundlegende Eingabe- / Ausgabeoperationen in C ++
- Zeichenfolgenfunktionen In C ++: getline, Teilzeichenfolge, Zeichenfolgenlänge und mehr