Erstellen und Ausführen einer Linux-„.a“-Datei

Erstellen Und Ausfuhren Einer Linux A Datei



Die Arbeit mit Dateien in einem Linux-Betriebssystem erfordert den Einsatz verschiedener Befehle und Techniken, die es den Entwicklern ermöglichen, Dateien, Code, Programme, Skripte und andere Dinge effizient zu erstellen und auszuführen. Im Linux-Umfeld haben Dateien mit der Erweiterung „.a“ ​​als statische Bibliotheken eine große Bedeutung. Diese Bibliotheken spielen eine wichtige Rolle in der Softwareentwicklung und ermöglichen es den Entwicklern, die gemeinsamen Funktionalitäten effizient zu verwalten und effektiv mit mehreren Programmen zu teilen.

Für eine effektive Softwareentwicklung in der Linux-Umgebung ist es von entscheidender Bedeutung, zu verstehen, wie eine „.a“-Datei erstellt und ausgeführt wird. Dies ist eine umfassende Anleitung zum Installieren und Konfigurieren einer Linux-„.a“-Datei. Lassen Sie uns herausfinden, was eine Linux-„.a“-Datei ist, ihren Zweck, ihre Struktur und wie sie erstellt und ausgeführt werden kann.

Was ist eine „.a“-Datei unter Linux?

Eine Linux-„.a“-Datei ist eine Archivdatei, die als Container für kompilierten Code und Daten dient. Sie wird allgemein als statische Bibliothek bezeichnet, die Codes enthält, die zur Kompilierungszeit mit dem aufrufenden Code verknüpft werden und so zu einem grundlegenden Bestandteil der Anwendung werden. Diese Linux-„.a“-Dateien stellen einen vorkompilierten, grundlegenden Beitrag zur Anwendung dar und stehen im völligen Gegensatz zu den dynamischen Linux-„.so“-Bibliotheksdateien, bei denen die Verknüpfung zur Laufzeit erfolgt.







Stellen wir uns ein Szenario vor, in dem ein Entwickler drei verschiedene Programme implementiert. Da der Programmierer weiß, dass zwischen diesen Programmen eine gemeinsame Funktionalität besteht, erstellt er eine Bibliothek, die diese gemeinsamen Funktionen kapselt und als „.a“-Datei präsentiert wird. Die wichtige Neuigkeit, die Sie an dieser Stelle wissen sollten, ist, dass die Linux-„.a“-Dateien zu einer wiederverwendbaren Sammlung von Code und Daten werden, die andere Entwickler in ihren Projekten verwenden können.



Voraussetzungen:

Bevor wir lernen, wie man eine „.a“-Datei unter Linux erstellt und ausführt, ist es wichtig, ein paar grundlegende Dinge zu wissen. Es gibt einige Voraussetzungen, die sichergestellt werden sollten, bevor eine Funktion unter Linux ausgeführt wird. Sie sind wie folgt:



  • Ubuntu 20.04 oder eine aktuelle Version
  • Zugriff auf eine Befehlszeile oder ein Terminalfenster
  • Ein Benutzerkonto, insbesondere Sudo-Berechtigungen, für verschiedene Dateien und Verzeichnisse

Wie erstellt und führt man eine Linux-„.a“-Datei aus?

Das Erstellen und Ausführen einer Linux-„.a“-Datei umfasst eine Reihe von Schritten: Erstellung, Kompilierung und Ausführung. Diese Aktionen können auf unterschiedliche Weise ausgeführt werden, und wir werden jede davon einzeln untersuchen. Lasst uns anfangen.





Sie benötigen einen GCC-Compiler, um das folgende Beispiel auszuführen. Der Compiler wird verwendet, um alle Befehle zum Erstellen und Ausführen der Linux-Datei „.a“ ​​auszuführen:



Im Folgenden werden die Schritte anhand verschiedener Befehle und Techniken erläutert.

Schritt 1: Kompilieren Sie eine C-Quelldatei

Beginnen Sie mit der Arbeit, indem Sie mit einem GCC-Compiler eine C-Quelldatei erstellen, um die C-Quelldateien (.c) mit dem folgenden Befehl in Objektdateien (.o) zu kompilieren:

$ gcc -Wand -C * .C

Das Flag „-Wall“ aktiviert alle Warnungen und das Flag „-c“ weist den GCC an, an dieser Stelle nur zu kompilieren und nicht zu verknüpfen.

Schritt 2: Erstellen Sie das Bibliotheksarchiv

Der nächste Schritt besteht darin, die Bibliotheksdatei zu erstellen. Der Befehl „ar“ erstellt aus den Objektdateien das statische Bibliotheksarchiv (.a). Daher verwenden wir den folgenden Befehl:

$ Mit -cvq libfile.a *

Dieser Befehl erstellt eine statische Archivdatei mit dem Namen „libfile.a“, indem er verschiedene Objektdateien mit der Erweiterung „.o“ mithilfe des Befehls „ar“ (Archive) in den Linux-Betriebssystemen kombiniert. Bei diesem Befehl sind drei Dinge zu beachten: „c“, „v“ und „q“. Lassen Sie uns die Komponenten aufschlüsseln und den Zweck jedes Flags und Arguments im Kontext dieses Befehls verstehen:

ar: Es führt den Archivierungsbefehl in den Linux-Systemen aus. Die Grundfunktion des Befehls „ar“ besteht darin, Archivdateien zu erstellen, zu ändern und daraus zu extrahieren.

-c: Dieses Flag weist an, ein neues Archiv zu erstellen, wenn es noch nicht erstellt wurde oder noch nicht existiert. Wenn eine Archivdatei mit dem angegebenen Namen vorhanden ist, stellt das Flag „-c“ sicher, dass sie neu erstellt wird und alle vorherigen Inhalte ersetzt.

-v: Das Verbose-Flag zeigt detaillierte Informationen zum Archivierungsprozess an. Es gibt eine Rückmeldung darüber, welche Dateien dem Archiv hinzugefügt werden.

-q: Das „q“ steht für „schnell anhängen“. Es fordert das „ar“-Flag an, die angegebenen Dateien umgehend an das Archiv anzuhängen, ohne nach doppelten Symbolen oder zeitaufwändigen Vorgängen zu suchen.

libfile.a: Der Name der Datei ist für den Befehl erforderlich, der erstellt oder geändert wird. Hier geben wir einen Dateinamen als „libfile“ mit der Erweiterung „.a“ ​​an, was darauf hinweist, dass es sich um eine statische Bibliotheksarchivdatei handelt.

*.o: Das „*“ am Ende des Befehls stellt jede Datei im ausgewählten Verzeichnis mit der Erweiterung „.o“ dar, die auf die Objektdateien verweist. Objektdateien sind das Ergebnis der Quellcodekompilierung und enthalten einen Maschinencode, der noch nicht mit einer endgültigen ausführbaren Datei verknüpft ist.

Schritt 3: Anzeigen der Bibliotheksinhalte

Nachdem wir nun das Bibliotheksarchiv erstellt haben, können wir es mit dem Befehl „ar –t“ anzeigen. Der Befehl „ar –t“ listet alle Inhalte auf, die in der Bibliothek vorhanden sind.

$ Mit -T libfile.a

Der Befehl „ar -t libfile.a“ listet mit dem Befehl „ar“ in einem Linux-Betriebssystem alle Objektdateien auf, die in der statischen Bibliotheksarchivdatei mit dem Namen „libfile.a“ enthalten sind. Lassen Sie uns jede Flagge und ihre Funktionalität analysieren:

ar: Wie bereits erwähnt, ist dies der Archivierungsbefehl in Linux-Systemen.

-t: Das Flag „-t“ wird verwendet, um das Inhaltsverzeichnis des Archivs anzuzeigen und die Namen der Objektdateien anzuzeigen, die in „libfile.a“ gespeichert sind.

libfile.a: Um die Daten lesen zu können, müssen wir den Namen der Archivdatei kennen.

Schritt 4: Verwenden der Bibliothek in einem anderen Programm

Sehen wir uns nun an, wie man die neu entwickelte Linux-Datei „.a“ ​​in einem anderen Programm verwendet. Da wir eine Bibliothek erstellt haben, kann diese nun überall und in jedem Programm verwendet werden, indem einfach die Bibliothek zum Kompilierungsbefehl hinzugefügt wird. Wir können dies mit Hilfe des folgenden Befehls erreichen. Es enthält alle notwendigen Header und Links der Bibliothek.

$ gcc MyProgramMain.c -L Weg / Zu / lib ist -lfile

In diesem Befehl gibt „-L“ den Bibliothekspfad an, „-lfile“ verknüpft mit der Lib-Datei „library.a“ und entfernt das „lib“-Präfix und das „.a“-Suffix.

Schritt 5: Führen Sie eine „.a“-Linux-Datei aus

Schließlich können wir die Datei „.a“ ​​ausführen. Das Ergebnis wird Ihnen sofort angezeigt, wenn Sie das folgende Skript in Ihrem Terminal ausführen:

$ . / MyProgramMain

Dieser Befehl führt die Datei aus und nutzt dabei die Funktionalitäten, die sowohl in den Quelldateien als auch in der verknüpften statischen Bibliothek bereitgestellt werden.

Abschluss

Das Erstellen und Ausführen einer „.a“-Datei unter Linux erfordert das Kompilieren der verschiedenen Befehle, die die Dateierstellung, -kompilierung und -verknüpfung durchführen. Das Verständnis dieser Schritte und der Arbeitsfunktionen jedes Befehls ermöglicht es den Entwicklern, ihren Code zu organisieren, externe Bibliotheken zu verwenden und skalierbare Programme zu entwickeln. Unabhängig davon, ob Sie die grundlegenden Befehle wie Nano und GCC verwenden müssen oder mit fortgeschritteneren Techniken mit statischen Bibliotheken arbeiten möchten, hilft die Beherrschung dieser Fähigkeiten bei der praktischen Linux-basierten Entwicklung.