A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
— |
oktatas:linux:libek [2019/08/16 21:22] (aktuális) admin létrehozva |
||
---|---|---|---|
Sor 1: | Sor 1: | ||
+ | [[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 | ||