Paylaşılan kitaplık NASIL katılan mekanizmaların çoğu açıklar ve dinamik yükleyici manuel daha ayrıntılı anlatır. Her unix varyantının kendi yolu vardır, ancak çoğu aynı çalıştırılabilir formatı ( ELF ) kullanır ve benzer dinamik bağlayıcılara sahiptir (Solaris'ten türetilmiştir). Aşağıda, Linux'a odaklanarak ortak davranışı özetleyeceğim; hikayenin tamamı için sistem kılavuzlarına bakın.
Kısaca, dinamik bir kütüphane ( .so
dosya) ararken linker dener:
LD_LIBRARY_PATH
ortam değişkeninde listelenen dizinler ( DYLD_LIBRARY_PATH
OSX'te);
- çalıştırılabilir yolunda listelenen dizinler ;
- (en azından Linux'taki)
/etc/ld.so.conf
artı /lib
ve /usr/lib
.
Yol, çalıştırılabilir dosyada saklanır ( DT_RPATH
veya DT_RUNPATH
dinamik niteliktir). İle bu başlangıç mutlak yol veya yollar içerebilir $ORIGIN
yürütülebilir konuma ilişkin bir yol göstermek için (çalıştırılabilir örn ise /opt/myapp/bin
ve rpath olup $ORIGIN/../lib:$ORIGIN/../plugins
daha sonra dinamik bağlayıcı görüneceğini /opt/myapp/lib
ve /opt/myapp/plugins
). Rpath, çalıştırılabilir derlenirken, -rpath
seçeneği ile belirlenir ld
, ancak sonradan değiştirebilirsiniz chrpath
.
Senaryoda Eğer uygulamanın geliştiricisi veya paketleyicisine iseniz, açıklamak ve bir yüklenecek için niyetinde …/bin
, …/lib
yapısı, daha sonra bağlantı -rpath='$ORIGIN/../lib'
. Sisteminize önceden oluşturulmuş bir ikili dosya yüklüyorsanız, kitaplığı arama yolundaki bir dizine yerleştirin ( /usr/local/lib
sistem yöneticisi iseniz, aksi takdirde eklediğiniz bir dizin $LD_LIBRARY_PATH
) veya deneyin chrpath
.
/lib64
ve/usr/lib64
64 bitlik ikililer için kullanılır ve/lib
ve/usr/lib
32 bitlik ikililer için kullanılmaktadır.