GNU/Linux >> Znalost Linux >  >> Linux

UNIX a příklady:Jak vytvářet, zobrazovat, extrahovat, upravovat soubory C archivu (*.a)

ar je archivační nástroj používaný ke kombinování objektů za účelem vytvoření archivního souboru s příponou .přípona, známá také jako knihovna.

V tomto článku se podíváme na to, jak vytvořit uživatelsky definovanou statickou knihovnu v programování C pomocí nástroje „ar“. Příklady ukazují, jak vytvořit, extrahovat a upravit archivy pomocí příkazu Linux ar.

Abychom demonstrovali vytvoření statické knihovny, vytvořme dva programy v jazyce C – sčítání.c a násobení.c

Pomocí gcc je získán objektový kód pro tyto programy az těchto dvou objektů je vytvořena statická knihovna libarith.a.

1. Vytvořte dva ukázkové programy C

Vytvořte program add.c, jak je ukázáno níže.

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

Vytvořte program multiplication.c, jak je ukázáno níže.

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

Před chvílí jsme diskutovali o základech psaní programu C na příkladu C hello world.

2. Zkompilujte programy a získejte objektové kódy

Použijte volbu -c ke kompilaci obou programů c. Použití volby -c vytvoří odpovídající .o soubory.

$ gcc -c addition.c

$ gcc -c multiplication.c

Nyní aktuální pracovní adresář obsahuje soubory .c i .o, jak je uvedeno níže.

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

3. Vytvořte statickou knihovnu programu C pomocí nástroje ar

Nyní vytvořte statickou knihovnu „libarith.a“ se souborem objektů sčítání a souborem objektů pro násobení následujícím způsobem,

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

4. Napište program C pro použití knihovny libarith.a

Soubor knihovny libarith.a je nyní připraven k použití. Následující příklad ukazuje, jak napsat ukázkový program C s hlavičkovým souborem pro použití statické knihovny libarith.a.

Vytvořte header.h :

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

Vytvořte example.c :

#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);
}

Poznámka:Jak ladit program C pomocí gdb v 5 jednoduchých krocích poskytuje podrobné pokyny k ladění kódu C.

Kompilace example.c :

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

Volba -L dává kompilátoru pokyn, aby hledal soubory knihovny v adresáři /home/guest. Z tohoto adresáře překladač vezme soubor knihovny libarith, zkompiluje jej pomocí programu example.c.

Další metoda kompilace example.c :

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

Spustit příklad spustitelného souboru :

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

5. Zobrazení objektových souborů v archivu pomocí příkazu ar, volba t

Chcete-li zobrazit seznam souborů objektů dostupných v souboru libarith.a:

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

Možnosti v příkazu ar jsou podobné příkazu tar.

6. Extrahujte soubory objektů z archivu pomocí příkazu ar, volba x

Soubory objektů dostupné v archivu můžete extrahovat následovně.

$ mkdir object

$ cp libarith.a object/

$ cd object

$ ar x libarith.a

$ ls *.o
addition.o
multiplication.o

7. Přidejte objektový soubor do existujícího archivu pomocí ar, volba r

Předpokládejme, že jste vytvořili další objektový soubor s názvem subtraction.o

Následující příkaz rozšíří soubor knihovny libarith.a vložením objektu subtraction.o, jak je znázorněno níže.

$ ar r libarith.a subtraction.o 

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

Při vkládání .o souboru již v archivu existuje, byl by nahrazen. Bez kontroly náhrad lze objekty přidat na konec archivu pomocí volby -q.

8. Smazat konkrétního člena archivu pomocí ar, možnost d

Chcete-li odstranit konkrétního člena archivu ze souboru knihovny, proveďte následující.

$ ar d libarith.a addition.o

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

Linux
  1. Jak extrahovat soubory z archivu balíčků Debian DEB

  2. Jak zobrazit obsah komprimovaných souborů v Linuxu

  3. Jak rozbalit soubory v Linuxu (s příklady)

  1. Jak zobrazit nebo změnit ACL v souborech Linux

  2. Jak extrahovat soubory .gz a .tar.gz v Linuxu

  3. Jak archivovat a komprimovat soubory na Linuxu

  1. 10 příkladů příkazů Tar v Linuxu pro vytváření a extrahování archivů

  2. Jak zobrazit, upravit a znovu vytvořit initrd.img

  3. Příklady cpio pro Linux:Jak vytvořit a extrahovat archivy cpio (a archivy tar)