GNU/Linux >> LINUX-Kenntnisse >  >> Linux

UNIX ar-Beispiele:Erstellen, Anzeigen, Extrahieren und Ändern von C-Archivdateien (*.a)

ar ist ein Archivierungswerkzeug, das zum Kombinieren von Objekten verwendet wird, um eine Archivdatei mit der Erweiterung .a zu erstellen, die auch als Bibliothek bekannt ist.

Lassen Sie uns in diesem Artikel diskutieren, wie Sie eine benutzerdefinierte statische Bibliothek in der C-Programmierung mit dem Dienstprogramm „ar“ erstellen. Die Beispiele zeigen, wie die Archive mit dem Linux-Befehl ar erstellt, extrahiert und geändert werden.

Um die Erstellung statischer Bibliotheken zu demonstrieren, lassen Sie uns zwei C-Programme erstellen — addition.c und multiplication.c

Mit gcc wird der Objektcode für diese Programme abgerufen und die statische Bibliothek libarith.a wird aus diesen beiden Objekten erstellt.

1. Erstellen Sie zwei Beispiel-C-Programme

Erstellen Sie das Programm addition.c wie unten gezeigt.

int addition(int a,int b)
{
int result;
result = a + b;
return result;
}

Erstellen Sie das Programm multiplication.c wie unten gezeigt.

int multiplication(int a, int b)
{
int result;
result = a * b;
return result;
}

Vor einiger Zeit haben wir über die Grundlagen des Schreibens von C-Programmen anhand des C-Hello-World-Beispiels diskutiert.

2. Kompilieren Sie die Programme und erhalten Sie Objektcodes

Verwenden Sie die Option -c, um sowohl das C-Programm zu kompilieren. Mit der Option -c werden die entsprechenden .o-Dateien erstellt.

$ gcc -c addition.c

$ gcc -c multiplication.c

Jetzt enthält das aktuelle Arbeitsverzeichnis sowohl die .c- als auch die .o-Datei, wie unten gezeigt.

$ ls
addition.c   multiplication.c   addition.o   multiplication.o

3. Erstellen Sie die statische C-Programmbibliothek mit einem Dienstprogramm

Erstellen Sie nun die statische Bibliothek „libarith.a“ mit der Addition Objektdatei und Multiplikation Objektdatei wie folgt,

$ ar cr libarith.a addition.o multiplication.o

4. Schreiben Sie ein C-Programm zur Verwendung der Bibliothek libarith.a

Die Bibliotheksdatei libarith.a ist nun einsatzbereit. Das folgende Beispiel zeigt, wie ein Beispiel-C-Programm mit der Header-Datei geschrieben wird, um die statische Bibliothek libarith.a zu verwenden.

Header.h erstellen:

#include <stdio.h>
int addition(int a,int b);
int multiplication(int a,int b);

Beispiel.c erstellen:

#include "header.h"
int main()
{
int result;
result = addition(1,2);
printf("addition result is : %d\n",result);
result = multiplication(3,2);
printf("multiplication result is :  %d\n",result);
}

Hinweis:Wie man ein C-Programm mit gdb in 5 einfachen Schritten debuggt, bietet eine Schritt-für-Schritt-Anleitung zum Debuggen Ihres C-Codes.

Kompilieren Sie example.c :

$ gcc -Wall example.c -L/home/guest/ -larith -o example

Die Option -L weist den Compiler an, im Verzeichnis /home/guest nach Bibliotheksdateien zu suchen. Aus diesem Verzeichnis nimmt der Compiler die Libarith-Bibliotheksdatei und kompiliert sie mit dem Programm example.c.

Eine andere Methode zum Kompilieren von example.c :

$ gcc -Wall example.c libarith.a -o example

Beispiel ausführbare Datei ausführen:

$ ./example
addition result is : 3
multiplication result is : 6

5. Anzeigen von Objektdateien in einem Archiv mit ar-Befehl, Option t

Um die in libarith.a verfügbaren Objektdateien aufzulisten:

$ ar t libarith.a
addition.o
multiplication.o

Die Optionen im ar-Befehl ähneln denen des tar-Befehls.

6. Extrahieren Sie Objektdateien aus einem Archiv mit dem ar-Befehl, Option x

Sie können die in einem Archiv verfügbaren Objektdateien wie folgt extrahieren.

$ mkdir object

$ cp libarith.a object/

$ cd object

$ ar x libarith.a

$ ls *.o
addition.o
multiplication.o

7. Hinzufügen einer Objektdatei zum bestehenden Archiv mit ar, Option r

Nehmen wir an, Sie haben eine weitere Objektdatei namens subtraction.o

erstellt

Der folgende Befehl erweitert die Bibliotheksdatei libarith.a, indem er das Objekt subtraction.o wie unten gezeigt einfügt.

$ ar r libarith.a subtraction.o 

$ ar t libarith.a
addition.o
multiplication.o
subtraction.o

Beim Einfügen einer .o-Datei, die bereits im Archiv vorhanden ist, wird sie ersetzt. Ohne auf Ersetzungen zu prüfen, können die Objekte mit der Option -q am Ende des Archivs hinzugefügt werden.

8. Löschen Sie ein bestimmtes Archivelement mit ar, Option d

Um ein bestimmtes Archivelement aus der Bibliotheksdatei zu löschen, gehen Sie wie folgt vor.

$ ar d libarith.a addition.o

$ ar t libarith.a
multiplication.o
subtraction.o

Linux
  1. So zeigen Sie den Inhalt komprimierter Dateien unter Linux an

  2. So entpacken Sie Dateien unter Linux (mit Beispielen)

  3. So erstellen Sie Dateien einer bestimmten Größe unter Linux

  4. So extrahieren Sie .gz- und .tar.gz-Dateien unter Linux

  5. So archivieren und komprimieren Sie Dateien unter Linux

So erstellen oder fügen Sie einen Index in MySQL mit Beispielen hinzu

So installieren Sie Rclone unter Linux und Unix

So können Sie versteckte Dateien und Verzeichnisse unter Linux anzeigen und erstellen

Linux-tar-Befehl – ​​So komprimieren Sie Dateien unter Linux

Wie erstelle ich ein Archiv in cPanel?

So zeigen Sie Dateien aus RPM-, DEB-, Depot- und MSI-Paketen an und extrahieren sie