Heim >类库下载 >其它类库 >Die Beziehung zwischen der statischen C-Bibliothek und der dynamischen Bibliothek

Die Beziehung zwischen der statischen C-Bibliothek und der dynamischen Bibliothek

高洛峰
高洛峰Original
2016-10-12 15:09:161926Durchsuche

Die Beziehung zwischen der statischen C-Bibliothek und der dynamischen Bibliothek

Was ist eine Bibliothek?

Bibliotheken sind geschriebener bestehender, ausgereifter und wiederverwendbarer Code. In Wirklichkeit hängt jedes Programm von vielen grundlegenden zugrunde liegenden Bibliotheken ab. Es ist unmöglich, dass jeder seinen Code von Grund auf neu beginnt, daher ist die Existenz von Bibliotheken von außerordentlicher Bedeutung.

Das sogenannte Statische und Dynamische bezieht sich auf Links. Zur Überprüfung die Schritte zum Kompilieren eines Programms in ein ausführbares Programm:

Die Beziehung zwischen der statischen C-Bibliothek und der dynamischen Bibliothek

Statische Bibliothek:

Der Grund, warum es zu einer [statischen Bibliothek] wird, ist, weil Es wird verknüpft. In der Phase werden die von der Assembly generierte Objektdatei .o und die referenzierte Bibliothek verknüpft und in eine ausführbare Datei gepackt. Daher wird die entsprechende Verknüpfungsmethode als statische Verknüpfung bezeichnet.

Stellen Sie sich vor, dass die statische Bibliothek und die durch Assembly generierte Zieldatei zu einer ausführbaren Datei verknüpft sind. Dann muss die statische Bibliothek ein ähnliches Format wie die .o-Datei haben. Tatsächlich kann eine statische Bibliothek einfach als eine Sammlung von Zieldateien (.o/.obj-Dateien) betrachtet werden, d. h. als eine Datei, die durch Komprimieren und Packen vieler Zieldateien entsteht. Zusammenfassung der Eigenschaften statischer Bibliotheken:

1. Die Verknüpfung von Funktionsbibliotheken durch statische Bibliotheken wird während der Kompilierung abgeschlossen.

2. Das Programm hat zur Laufzeit nichts mit der Funktionsbibliothek zu tun, was die Transplantation erleichtert.

3. Platz- und Ressourcenverschwendung, da alle zugehörigen Objektdateien und beteiligten Funktionsbibliotheken in einer ausführbaren Datei verknüpft sind.

Durch die obige Einführung habe ich festgestellt, dass die statische Bibliothek einfach zu verwenden und zu verstehen ist und auch den Zweck von Code erfüllt Wiederverwendung, warum ist es also nötig? Was ist mit dynamischen Bibliotheken?

Warum brauchen Sie eine dynamische Bibliothek?

Warum eine dynamische Bibliothek benötigt wird, liegt tatsächlich an den Eigenschaften einer statischen Bibliothek.

1. Platzverschwendung ist ein Problem bei statischen Bibliotheken.

Die Beziehung zwischen der statischen C-Bibliothek und der dynamischen Bibliothek

2. Ein weiteres Problem besteht darin, dass statische Bibliotheken Probleme auf den Update-, Bereitstellungs- und Release-Seiten des Programms verursachen. Wenn die statische Bibliothek liba.lib aktualisiert wird, müssen die Anwendungen, die sie verwenden, neu kompiliert und für Benutzer freigegeben werden (für Spieler ist dies möglicherweise eine kleine Änderung, führt jedoch dazu, dass das gesamte Programm erneut heruntergeladen und vollständig aktualisiert wird). .

Dynamische Bibliotheken werden beim Kompilieren des Programms nicht mit dem Zielcode verknüpft, sondern geladen, wenn das Programm ausgeführt wird. Wenn verschiedene Anwendungen dieselbe Bibliothek aufrufen, müssen sie nur eine Instanz der gemeinsam genutzten Bibliothek im Speicher haben, wodurch das Problem der Platzverschwendung vermieden wird. Die dynamische Bibliothek wird geladen, wenn das Programm ausgeführt wird, wodurch auch das Problem gelöst wird, dass die statische Bibliothek Probleme auf der Update-, Bereitstellungs- und Release-Seite des Programms verursacht. Benutzer müssen nur die dynamische Bibliothek aktualisieren, inkrementelle Aktualisierung.

Die Beziehung zwischen der statischen C-Bibliothek und der dynamischen Bibliothek

Zusammenfassung der Funktionen der dynamischen Bibliothek:

1. Die dynamische Bibliothek verschiebt das Laden von Links zu einigen Bibliotheksfunktionen, bis das Programm ausgeführt wird.

2. Die gemeinsame Nutzung von Ressourcen zwischen Prozessen kann erreicht werden. (Daher werden dynamische Bibliotheken auch gemeinsam genutzte Bibliotheken genannt)

3. Erleichtern Sie das Upgrade einiger Programme.

4. Das Linkladen kann sogar komplett vom Programmierer im Programmcode gesteuert werden (Display-Aufruf).


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:KeinerNächster Artikel:C及C++中typedef的简单使用指南

In Verbindung stehende Artikel

Mehr sehen