Heim > Backend-Entwicklung > C++ > Wie erstelle und verwende ich eine dynamische C-Shared-Bibliothek unter Linux?

Wie erstelle und verwende ich eine dynamische C-Shared-Bibliothek unter Linux?

Mary-Kate Olsen
Freigeben: 2024-12-08 02:39:14
Original
226 Leute haben es durchsucht

How to Create and Use a C   Dynamic Shared Library on Linux?

C Dynamic Shared Library unter Linux

Dynamic Shared Libraries (DSLs), auch als Shared Libraries oder Shared Objects bekannt, bieten die Möglichkeit, Code in wiederverwendbare Module zu unterteilen C-Programmierung. Dies ermöglicht die gemeinsame Nutzung von Code zwischen mehreren Programmen, reduziert die Codeduplizierung und ermöglicht eine einfachere Wartung.

Erstellen einer gemeinsam genutzten Klassenbibliothek

In C umfasst das Erstellen einer gemeinsam genutzten Klassenbibliothek Definieren einer Header-Datei (.h) und einer Quelldatei (.cc) für die Klassenimplementierung. Die Header-Datei sollte die Klassenschnittstelle deklarieren, während die Quelldatei die Implementierung bereitstellt. So erstellen Sie eine gemeinsam genutzte Bibliothek mit diesen Dateien:

#include "myclass.h"</p>
<h1>include <iostream></h1>
<p>using namespace std;</p> <p>MyClass::MyClass()<br>{<br> x = 20;<br>}</p>
<p>void MyClass::DoSomething()<br>{<br> cout << x << endl;<br>}

Externe Verknüpfung

Mithilfe von Symbolen, denen das externe „C“ vorangestellt ist, weist die externe Verknüpfung den Compiler an, Funktionen verfügbar zu machen zur Außenwelt. Dies ist erforderlich, wenn Funktionen aus der gemeinsam genutzten Bibliothek in anderen Programmen aufgerufen werden.

Verwenden der gemeinsam genutzten Bibliothek

Um die gemeinsam genutzte Klassenbibliothek in einer separaten ausführbaren Datei zu nutzen, befolgen Sie diese Schritte :

  1. Laden der Bibliothek: Verwenden Sie dlopen, um die gemeinsam genutzte Bibliothek zu laden Speicher.
  2. Funktionsadressen abrufen: Verwenden Sie dlsym, um die Adressen der Funktionen create_object und destroy_object abzurufen.
  3. Erstellen eines Objekts: Rufen Sie die Funktion create_object auf ein Objekt des instanziieren Klasse.
  4. Verwenden des Objekts: Rufen Sie Mitgliedsfunktionen wie DoSomething für das erstellte Objekt auf.
  5. Zerstören des Objekts: Rufen Sie abschließend die auf destroy_object-Funktion zum Aufheben der Zuordnung des Objekts.

Beispiel Verwendung

Der folgende Codeausschnitt veranschaulicht die Verwendung einer gemeinsam genutzten Klassenbibliothek:

#include <dlfcn.h></p>
<h1>include < iostream></h1>
<h1>include "myclass.h"</h1>
<p>using namespace std;</p>
<p>int main(int argc, char **argv) {<br> MyClass<em> myClass = (MyClass</em>)create( );<br> myClass->DoSomething();<br> destroy( myClass );<br>}

Kompilierung

Für Mac OS X:

g++ -dynamiclib -flat_namespace myclass.cc -o myclass.so
g++ class_user.cc -o class_user
Nach dem Login kopieren

Für Linux:

g++ -fPIC -shared myclass.cc -o myclass.so
g++ class_user.cc -ldl -o class_user
Nach dem Login kopieren

Durch die Verwendung gemeinsam genutzter Bibliotheken können Entwickler die Wiederverwendbarkeit, Wartung und Skalierbarkeit ihres Codes in der C-Programmierung verbessern. Dynamische Verknüpfung ermöglicht die gemeinsame Nutzung von Code zwischen Programmen, optimiert die Speichernutzung und verbessert die Gesamtleistung von Softwaresystemen.

Das obige ist der detaillierte Inhalt vonWie erstelle und verwende ich eine dynamische C-Shared-Bibliothek unter Linux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage