Typische Anwendungen
Das Kommando ar wird verwendet, um eine Archivbibliothek von kompilierten C-Funktionen anzulegen,
die dem Linker ld zum Einbinden der benoetigten Funktionen vorgelegt wird. ld wird zwar automatisch
von cc bzw. gcc aufgerufen, kann jedoch auch direkt aufgerufen werden.
ar kann auch verwendet werden, um miteinander verwandte Textdateien (wie z. B. C-Quellprogramme oder
Briefe) in einem Archiv unterzubringen. Dies fuehrt zu einer erheblichen Reduzierung der Dateien in
einem Directory und dient somit auch der Uebersichtlichkeit.
ar wird haeufig auch verwendet, wenn eine grosse Zahl von Dateien kopiert werden muss. In diesem
Fall werden alle zu kopierenden Dateien zunaechst in einem Archiv abgelegt, bevor das gesamte Archiv
kopiert wird.
1 $ ls
2 five.o four.o libOne.a one.o three.o two.o
3 $ ar -t libOne.a
4 four.o
5 $ ar -q libOne.a two.o four.o
6 $ ar -t libOne.a
7 four.o
8 two.o
9 four.o
10 $ ar d libOne.a four.o
11 $ ar -t libOne.a
12 $ ls
13 two.o
14 four.o
In Zeile 1 ist zu sehen, dass im $PWD die Dateien five.o, four.o, libOne.a, one.o, three.o, two.o
vorhanden sind und in Zeile 2 der Inhalt der Archivbibliothek libOne.a angezeigt (das
Ergebnis steht in Zeile 4).
In Zeile 5 werden die Objectdateien two.o und four.o in die Archivbibliothek
libOne.a eingefuegt. Die Option -q sorgt dafuer, dass nicht
ueberprueft wird, ob eine dieser Objectdateien bereits in der Archivbibliothek enthalten ist (wie
man am Ergebnis in Zeile 7, 8 und 9 sehen kann).
ar d libOne.a four.o entfernt die Objectdatei four.o wieder aus der
Archivbibliothek.
Hinweis:
Mit ar -t /usr/lib/libc.a | sort | less kann man sich alle Objectdateien aus der
C-Standardbibliothek auflisten lassen. Um sich alle Funktionen aus einer Bibliothek (wie z. B. der
C-Standardbibliothek) auflisten zu lassen, muss auf das Kommando nm (name mapper)
zurueckgegriffen werden:
1 nm /usr/lib/libc.a | less
2 [...]
3 assert.o:
4 U _IO_fflush
5 U _IO_fputs
6 U __asprintf
7 00000000 T __assert_fail
8 [...]
Das Kuerzel T in Zeile 7 bedeutet dabei, dass die Funktion hier definiert ist, waehrend
U (Zeile(n) 4, 5 und 6) anzeigt, dass diese Funktion lediglich aufgerufen wird.
Zurueck || Index || Vor