Detaillierte Erklärung der Funktionen von -I (großes i), -L (großes l) und -l (kleines l) beim Kompilieren von Programmen mit g++ unter Linux

Detaillierte Erklärung der Funktionen von -I (großes i), -L (großes l) und -l (kleines l) beim Kompilieren von Programmen mit g++ unter Linux

Als Linux-Einsteiger habe ich schon oft einfache gcc/g++ Operationen verwendet, für etwas komplexere Programme kommen aber manchmal Bibliotheken zum Einsatz. Wenn ich auf ein Problem stieß, suchte ich viele von meinen Vorgängern zusammengefasste Informationen heraus und hinterließ ein Skript in der Hoffnung, dass es meinen Freunden hilfreich sein würde. Ich würde mich sehr freuen, wenn ich auch dein Problem lösen könnte, hehe.
Beispiel: libz.so

g++ -o komprimieren compress.cpp -I/home/include/ -L/lib/ -lz

(1) -I (großes i)

Der Compiler sucht im durch -I angegebenen Pfad nach Headerdateien.

-I/home/include/ bedeutet, dass -I/home/include/ als erstes Verzeichnis für die Suche nach Header-Dateien verwendet wird. Die Suchreihenfolge ist:

/home/include/ -->/usr/include -->/usr/local/include

(2) -L (großes l)

Das bedeutet: Der Compiler sucht die Bibliotheksdatei im durch -L angegebenen Pfad. Generell können Sie mit -l nach -L mehrere Bibliotheksdateien gleichzeitig angeben.

-L/lib/ bedeutet, im Verzeichnis /lib/ nach Bibliotheksdateien zu suchen

(3) -l (kleines l)

Das bedeutet: Der Compiler durchsucht den Standardpfad des Systems. Wenn er die Bibliothek nicht finden kann, durchsucht er das aktuelle Verzeichnis. Wenn er die Bibliothek im aktuellen Verzeichnis nicht finden kann, durchsucht er den Pfad, der ganz oben in den Umgebungsvariablen wie LD_LIBRARY_PATH festgelegt ist. Wenn er die Bibliothek immer noch nicht finden kann, meldet der Compiler, dass er die Bibliothek nicht finden kann.

Dieses Beispiel verwendet die Gunzip-Bibliothek, der Dateiname der Bibliothek ist libz.so und der Bibliotheksname ist z. Es ist leicht zu erkennen, dass Sie den Bibliotheksnamen erhalten, wenn Sie die erste „lib“- und die letzte „.so“-Erweiterung des Bibliotheksdateinamens entfernen.

Zusammenfassen

Dies ist das Ende dieses Artikels mit der detaillierten Erklärung der Funktionen von -I (großes i), -L (großes l) und -l (kleines l) beim Kompilieren von g++-Programmen unter Linux. Weitere relevante Inhalte zu Linux g++-Compilerprogrammen finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • So verwenden Sie G++ zum Kompilieren eines CPP-Projekts unter Linux
  • Zusammenfassung zur Verwendung von g++ zum Kompilieren von C++ in einer Linux-Umgebung
  • Methoden zum Kompilieren und Verwenden statischer und dynamischer Bibliotheken mit g++ unter Linux
  • So kompilieren Sie die dynamische GDAL-Bibliothek mit G++ in einer Linux-Umgebung
  • Detaillierte Erläuterung der grundlegenden Verwendung des Linux C ++ - Compilers g ++

<<:  Aufrufen von Baidu Map zum Abrufen von Längen- und Breitengrad in Vue

>>:  Optimierung von Datentabellen in MySQL-Datenbanken, Analyse von Fremdschlüsseln und Nutzung von drei Paradigmen

Artikel empfehlen

js-Version zur Realisierung der Rechnerfunktion

In diesem Artikelbeispiel wird der spezifische Co...

So verwenden Sie Dayjs zum Berechnen gängiger Daten in Vue

Bei der Verwendung von Vue zur Entwicklung von Pr...

So verwenden Sie weniger im WeChat-Applet (optimale Methode)

Vorwort Ich bin es gewohnt, Less/Sass zu schreibe...

jQuery erzielt Ein- und Ausblendeffekte

Bevor wir jQuery verwenden, um den Ein- und Ausbl...

JavaScript-Ereigniserfassungs-Blubbern und Erfassungsdetails

Inhaltsverzeichnis 1. Ereignisablauf 1. Konzept 2...

CentOS 8 offiziell veröffentlicht, basierend auf Red Hat Enterprise Linux 8

Das CentOS-Projekt, ein 100 % kompatibler Neuaufb...

So implementieren Sie das Abfangen von URIs im Nginx-Standort

veranschaulichen: Stamm und Alias ​​im Standort D...

Drei Vererbungsmethoden in JavaScript

erben 1. Was ist Vererbung? Vererbung: Zunächst e...

Mehrere Möglichkeiten zur Implementierung der Vererbung in JavaScript

Inhaltsverzeichnis Strukturelle Vererbung (implem...

Detaillierte Erklärung des MySQL-Überwachungstools mysql-monitor

1. Übersicht mysql-monitor MySQL-Überwachungstool...

Chrome überwacht Cookie-Änderungen und weist Werte zu

Der folgende Code führt die Überwachung von Cooki...

CSS3 realisiert das Effektdiagramm zur Produktanzeige auf der Website

Dieser Artikel stellt die Wirkung der Produktanze...