.so

A Programozás Wiki wikiből

Shared Object. Unix-szerű rendszereknél (Linuxot is beleértve) ugyanazt a szerepet látja el, mint a Microsoft Windows esetén a Dynamic Linking Library DLL. Betöltése történhet automatikusan (vagyis a betöltőprogram (ld.so) által), vagy magából a programból a dlopen függvény használatával.

Előnyei:

  • nem kell minden programba külön belefordítani.
  • több olyan program egyidejű futásakor, amely ugyanezt a .so -t használja, a .so fájl programja fizikailag csak egyetlen példányban töltődik be a memóriába. A .so által igényelt adatterület természetesen mindegyik példánynak saját.

Megjegyzések:

  • A közös használatú shared objecteket rendszerint olyasfajta szabványosított helyeken tartjuk, mint /lib, /usr/lib, /usr/local/lib, nevük rendszerint libvalami-verziószám.so (egyes platformokon (pl AIX) a shared objektek .a könyvtárakban is lehetnek, pl: /usr/lib/libc.a(shr.o))
  • Egy program futásához (pontosabban: elindításához) szükséges osztott könyvtárakról a ldd segédprogram ad információt (pl.: ldd `which sh` felsorolja a shell futásához szükséges könyvtárakat)
  • Egyes platformokon (pl linux) a ldconfig segédprogramot kell használni az újonnan telepített osztott könyvtárak 'beillesztésére'.