Tartalomjegyzék

< Linux

Libek

Az .a kiterjesztésű lib

Ha egy függvényt például a C forráskódba illesztünk, a szerkesztő a .a kiterjesztésű fájlból illeszti be a szükséges kódot. Ezeka libek általában a /usr/lib könyvtárban találhatók. Pl.:

/usr/lib/libc.a

A szerkesztő ezek a kódokat a készülő futtatható bináris fájlba illeszti.

Az nm paranccsal megnézhetjük milyen szimbólumokat tartalmaz egy lib. Például a libc.a szimbolumai:

nm /usr/lib/libc.a

Az .so kiterjesztésű lib

Megosztott könyvtárak. A szerkesztő ezeket a könyvtárakat a nem szerkeszti bele az futtatható fájlba. Abba csak egy hivatkozást hoz létre az .so kiterjesztésű állományra. A program futásakor a futásidejű szerkesztő (run-time linker) indul el, amely szüksége esetén a memóriába tölti az adott .so fájlt. A megosztott könyvtárak a /lib és /usr/lib könyvtárakban találhatók. Az .so után rendszerint találunk egy vagy több számot is ami annak verziószámára utal.

Milyen szimbólumok vannak egy .so fájlban? Például a libgg.so.1.0.0:

nm -D /usr/lib/libgg.so.1.0.0

Az .o kiterjesztésű lib

Objektumfájlok, amelyeket a C, C++ vagy más fordítók állítanak elő. Az objektumfájlokat szerkeszti össze a szerkesztő.

Milyen függőségei vannak egy programnak?

ldd programnev
ldd -v programnev