17.3 Könyvtárfájlok használata UNIX alatt

Egy Fortran segédprogram-csomag akár több száz fájlból is állhat. Ha csak egyet is használni kívánunk közülük, idõpocsékoló és értelmetlen újra és újra lefordíttattni az összeset. UNIX operációs rendszerû számítógépen ezt a problémát elkerülhetjük az ún. könyvtárfájl (library file) használatával. Mivel a könyvtárfájl egy teljesen "normális" fájl, elég csak a fõprogramunkat lefordítani, majd ezt linkelni a könyvtárfájl(ok)hoz. A linkelés sokkal gyorsabb, mint a fordítás.

A könyvtárfájlok neve lib -bel kezdõdik és .a.-val végzõdik. Nem kizárt, hogy néhány könyvtárfájlt már a rendszergazda telepített a gépre, általában ezekbe a könyvtárakba: /user/lib és/vagy /user/local/lib. Tehát például lehetséges, hogy a BLAS könyvtárfájl ebben a fájlban található./user/local/lib/libblas.a. A -l használatával linkelhetjük össze a könyvtárfájlt programunkkal, az alábbi módon:

      f77 fo.f -lblas
Természetesen több könyvtárfájlt is linkelhetünk:
      f77 fo.f sub.f -llapack -lblas
Fontos a felsorolás sorrendje, a fenti példánkban -llapack hamarabb listázódik ki, mint -lblas, mivel a LAPACK hívja a BLAS routine-okat.

Ha egy saját könyvtárfájlt kívánunk létrehozni, akkor miután a forrás kódokat lefordítottuk célkódokká egy közös fájlba kell gyûjtenünk ezeket. Ebben a példában egy my_lib nevû könyvtárfájlt hoznuk létre:

       f77 -c *.f
       ar rcv libmy_lib.a *.o
       ranlib libmy_lib.a 
       rm *.o
Az és utasításokról több infót akármelyik UNIX kézikönyvben is találhatunk. Miután megvan a könyvtárfájlunk, már linkelhetjük is:
       f77 main.f -L. -lmy_lib

Ebben rejlik a könyvtárfájlok nagy elõnye, elég egyszer lefordítani, de ezután akárhányszor használhatjuk.

 

Copyright © 1995-7 by Stanford University. All rights reserved.

Fordították: Seres András Tamás és Szalai Szilvia (ELTE-TTK)


[Tovább] [Tartalomjegyzék]