Heim Betrieb und Instandhaltung Betrieb und Wartung von Linux Detaillierte Erläuterung der G++-Kompilierung und Verwendung statischer und dynamischer Bibliotheken unter Linux

Detaillierte Erläuterung der G++-Kompilierung und Verwendung statischer und dynamischer Bibliotheken unter Linux

May 28, 2017 am 11:32 AM

Der folgende Editor bringt Ihnen einen Artikel G++-Kompilierung und Verwendung unter LinuxStatischThe Die Methode der Bibliothek und der dynamischen Bibliothek ist der Meinung, dass sie ziemlich gut ist, daher werde ich sie jetzt mit Ihnen teilen und darauf verweisen.

In derWindows-UmgebungUnter dem Projekt, wir Normalerweise entwickeln wir C++-Projekte in IDEs wie VS. Wir sind möglicherweise mit der Generierung und Verwendung statischer Bibliotheken (*.lib) und dynamischer Bibliotheken (*.dll) vertraut Ein weiterer Satz von Modi. Die entsprechenden statischen Bibliotheken (*.a) und dynamischen Bibliotheken (*.so) werden auf unterschiedliche Weise generiert und verwendet. Sie sind möglicherweise zunächst nicht damit vertraut, sollten sie jedoch häufiger verwenden Ich bin an diese Art der Verwendung gewöhnt, da die Schritte nicht so kompliziert sind wie die Konfiguration unter VS

Das Folgende ist eine Zusammenfassung, wie statische Bibliotheken und dynamische Bibliotheken unter Linux generiert und verwendet werden: (Da es so ist ein C++-Projekt, also verwendet der Compiler g++, aber es ist dasselbe wie die Verwendung von gcc)

Zunächst besteht die Vorbereitungsarbeit darin, das zu kapseln Funktionen, die wir in eine Bibliotheksdatei packen müssen. Die Header-Datei und die Quelldatei werden wie folgt geschrieben:

//myAPI.h 
int ADD(int a, int b); 
int MINUS(int a, int b);
Nach dem Login kopieren
//myAPI.cpp 
#include "myAPI.h" 
 
int ADD(int a, int b){ 
  return a + b; 
} 
 
int MINUS(int a, int b){ 
  return a - b; 
}
Nach dem Login kopieren

Als nächstes bereiten Sie eine Hauptfunktionsquelldatei zum Testen vor:

//main.cpp 
#include "myAPI.h" 
#include <iostream> 
 
int main(){ 
  std::cout << "1 + 1 = " << ADD(1, 1) << std::endl; 
  std::cout << "1 - 1 = " << MINUS(1, 1) << std::endl; 
  return 0; 
}
Nach dem Login kopieren

Abschließend kompilieren Sie unsere Die myAPI.cpp-Datei generiert die myAPI.o-Zieldatei

g++ -c myAPI.cpp
Nach dem Login kopieren

1. Generieren Sie eine statische Bibliothek und verwenden Sie

zum Generieren einer statischen Bibliothek unter Linux Der Befehl ar verarbeitet die Datei myAPI.o, um eine statische Bibliotheksdatei zu generieren. Die generierte Bibliotheksdatei sollte den Spezifikationen entsprechen, und der Bibliotheksdatei unter Linux sollte das Präfix „ vorangestellt werden. lib". Daher kann für dieses Beispiel die statische Bibliothek libmyAPI.a mit dem folgenden Befehl generiert werden:

ar crv libmyAPI.a myAPI.o
Nach dem Login kopieren

Als Nächstes können Sie die statische Bibliothek während des Projektkompilierungsprozesses verwenden. Zu diesem Zeitpunkt: Die Definitionsdatei der Bibliotheksfunktion myAPI.cpp wird nicht mehr benötigt. Der Kompilierungsbefehl main.cpp lautet wie folgt (beachten Sie, dass die Abhängigkeiten wie folgt sind. Statische Bibliotheksdateien sollten nach den Abhängigkeiten platziert werden):

g++ main.cpp libmyAPI.a -o output
Nach dem Login kopieren

Nachdem die Kompilierung abgeschlossen ist, kann die Ausgabe der ausführbaren Datei ausgeführt werden. Zu diesem Zeitpunkt wird libmyAPI.a nicht mehr benötigt, um den Befehl auszuführen und die Ergebnisse auszugeben:

./output
Nach dem Login kopieren
Nach dem Login kopieren

2. Generieren Sie eine dynamische Bibliothek und verwenden Sie

zum Übergeben beim Kompilieren unter Linux. Der Parameter -shared kann eine dynamische Bibliothek generieren ( .so)-Datei wie folgt:

g++ -shared -fPIC -o libmyAPI.so myAPI.o
Nach dem Login kopieren

Die generierte dynamische Bibliothek muss während der Kompilierung deklariert werden und muss zur Laufzeit von ihr abhängig sein. Die Deklaration lautet wie folgt:

g++ main.cpp -L. -lmyAPI -o output
Nach dem Login kopieren

. Das Flag „-L.“ teilt G++ mit, dass sich die Funktionsbibliothek im aktuellen Verzeichnis befinden kann. Verwenden Sie das Flag „-lmyAPI“, um dem G++--Treiber--Programm mitzuteilen, dass es auf die -Gemeinschaftsfunktionsbibliothek verweisen soll libmyAPI.so während der Verknüpfungsphase.

Wenn bei der Verwendung der folgende Fehler angezeigt wird, verschieben Sie libmyAPI.so einfach in das Verzeichnis /usr/lib:

./output
Nach dem Login kopieren
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der G++-Kompilierung und Verwendung statischer und dynamischer Bibliotheken unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So starten Sie Apache So starten Sie Apache Apr 13, 2025 pm 01:06 PM

Die Schritte zum Starten von Apache sind wie folgt: Installieren Sie Apache (Befehl: sudo apt-Get-Get-Installieren Sie Apache2 oder laden Sie ihn von der offiziellen Website herunter). (Optional, Linux: sudo systemctl

Was tun, wenn der Port Apache80 belegt ist Was tun, wenn der Port Apache80 belegt ist Apr 13, 2025 pm 01:24 PM

Wenn der Port -80 -Port der Apache 80 besetzt ist, lautet die Lösung wie folgt: Finden Sie den Prozess, der den Port einnimmt, und schließen Sie ihn. Überprüfen Sie die Firewall -Einstellungen, um sicherzustellen, dass Apache nicht blockiert ist. Wenn die obige Methode nicht funktioniert, konfigurieren Sie Apache bitte so, dass Sie einen anderen Port verwenden. Starten Sie den Apache -Dienst neu.

So starten Sie den Apache -Server neu So starten Sie den Apache -Server neu Apr 13, 2025 pm 01:12 PM

Befolgen Sie die folgenden Schritte, um den Apache -Server neu zu starten: Linux/MacOS: Führen Sie sudo systemCTL RESTART APache2 aus. Windows: Net Stop Apache2.4 und dann Net Start Apache2.4 ausführen. Führen Sie Netstat -a | Findstr 80, um den Serverstatus zu überprüfen.

So lösen Sie das Problem, dass Apache nicht gestartet werden kann So lösen Sie das Problem, dass Apache nicht gestartet werden kann Apr 13, 2025 pm 01:21 PM

Apache kann aus den folgenden Gründen nicht beginnen: Konfigurationsdatei -Syntaxfehler. Konflikt mit anderen Anwendungsports. Berechtigungen Ausgabe. Aus dem Gedächtnis. Prozess -Deadlock. Dämonversagen. Selinux -Berechtigungen Probleme. Firewall -Problem. Software -Konflikt.

Wie man Debian Syslog lernt Wie man Debian Syslog lernt Apr 13, 2025 am 11:51 AM

In diesem Leitfaden werden Sie erfahren, wie Sie Syslog in Debian -Systemen verwenden. Syslog ist ein Schlüsseldienst in Linux -Systemen für Protokollierungssysteme und Anwendungsprotokollnachrichten. Es hilft den Administratoren, die Systemaktivitäten zu überwachen und zu analysieren, um Probleme schnell zu identifizieren und zu lösen. 1. Grundkenntnisse über syslog Die Kernfunktionen von Syslog umfassen: zentrales Sammeln und Verwalten von Protokollnachrichten; Unterstützung mehrerer Protokoll -Ausgabesformate und Zielorte (z. B. Dateien oder Netzwerke); Bereitstellung von Echtzeit-Protokoll- und Filterfunktionen. 2. Installieren und Konfigurieren von Syslog (mit Rsyslog) Das Debian -System verwendet standardmäßig Rsyslog. Sie können es mit dem folgenden Befehl installieren: sudoaptupdatesud

Läuft das Internet unter Linux? Läuft das Internet unter Linux? Apr 14, 2025 am 12:03 AM

Das Internet stützt sich nicht auf ein einzelnes Betriebssystem, aber Linux spielt eine wichtige Rolle dabei. Linux wird häufig auf Servern und Netzwerkgeräten verwendet und ist für seine Stabilität, Sicherheit und Skalierbarkeit beliebt.

So beheben Sie Apache Schwachstellen So beheben Sie Apache Schwachstellen Apr 13, 2025 pm 12:54 PM

Schritte zur Behebung der Apache -Sicherheitsanfälligkeit umfassen: 1. Bestimmen Sie die betroffene Version; 2. Anwenden von Sicherheitsaktualisierungen; 3. Starten Sie Apache neu; 4. Überprüfen Sie die Fix; 5. Sicherheitsfunktionen aktivieren.

So starten Sie Nginx unter Linux So starten Sie Nginx unter Linux Apr 14, 2025 pm 12:51 PM

Schritte zum Starten von Nginx unter Linux: Überprüfen Sie, ob Nginx installiert ist. Verwenden Sie SystemCTL Start Nginx, um den Nginx -Dienst zu starten. Verwenden Sie SystemCTL aktivieren NGINX, um das automatische Start von NGINX beim Systemstart zu aktivieren. Verwenden Sie den SystemCTL -Status NGINX, um zu überprüfen, ob das Startup erfolgreich ist. Besuchen Sie http: // localhost in einem Webbrowser, um die Standard -Begrüßungsseite anzuzeigen.

See all articles