[[oktatas:linux|< 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