Tartalomjegyzék
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