Next: Preklad a linkovani
Up: PREKLADACEKNIHOVNY PROGRAM¦
Previous: Procedura fort
Knihovny jsou soubory prelozenych rutin, ktere mohou byt prilinkovany
k programu uzivatele pri vytvareni vykonneho modulu. Existuji dva typy
knihoven.[3]
a) Archivni knihovny
Jmeno knihovny zacina retezcem lib a ma extenzi .a.
Tyto knihovny jsou pro UNIX standardem.
Rutiny techto knihoven jsou pri linkovani kopirovany do vykonneho modulu.
Priklad vytvoreni archivni knihovny v C-shellu:
- ar cr libname.a .o
-
vytvoreni knihovny ze vsech
prelozenych modulu .o v nastavenem adresari
- ranlib libname.a
- vytvoreni archivni knihovny
(nutno provest i po kazde zmene v knihovne)
- ar t libname.a
- vypis obsahu knihovny
- ar t libname.a |grep modul
- zjisteni, zda je modul obsazen
v knihovne.
- ar x libname.a memb.o
- Zmeny v knihovne.
x znamena
nektery z nasledujicich prikazu:
- r
- nahrazeni existujiciho modulu nebo pridani
noveho modulu
- m
- presunuti modulu na konec archivniho souboru
- d
- vymazani modulu
- q
- pridani modulu na konec archivniho souboru. V pripade jiz
existujiciho modulu neni starsi modul odstranen
b) Sdilene knihovny
Sdilene knihovny
(shared library) maji v C-shellu extenzi .so a v Korn shellu .sl.
Linkovaci program nekopiruje moduly techto knihoven
do vykonneho modulu, reference se
rozresuji az pri exekuci (run time library). Vykonny modul zaujima
z toho duvodu mene prostoru na disku a setri se i virtualni pamet.
Priklad vytvoreni sdilene knihovny v Korn shellu:
Programy musi byt prelozeny s nasledujicimi volbami:
fort77 -c -K -ppn +z user.f
ld -o libuser.sl -b user.o
Next: Preklad a linkovani
Up: PREKLADACEKNIHOVNY PROGRAM¦
Previous: Procedura fort