[ LUGOS ] ld ne najde libX11

Metod Kozelj metod.kozelj na rzs-hm.si
Sre Dec 10 13:10:44 CET 1997


Howdy!

> > Tole v resnici ne pravi loader temvec linker. Ce jaz kaj vem, potem
> > linker po defaultu isce knjiznice samo v /lib in /usr/lib.
> > Vse ostale lokacije mu moras povedat z -L/path/to/libraries
> 
> Zraven pa se pogleda v dire, ki so navedeni v /etc/ld.so.conf.

Wrong, wrong, wrong.

Mesate jabolka in jablane.

LOADER /lib/ld.so gleda v /etc/ld.so.cache
   poganja ga ... hmmm ... kernel? ... ko se pozene program. ld.so potem
   nalozi vse potrebne sharane knjiznice, katerih lokacije najde v
   /etc/ld.so.cache. Poleg teh lokacij poisce sharane knjiznice se v
   nekaterih direktorijih: nekateri so prevedeni v sam loader, drugi
   so nasteti v spremenljivki LD_LIBRARY_PATH, tretji pa kar v sam
   executable.

KONFIGURATOR /sbin/ldconfig gleda v /etc/ld.so.conf in naredi  /etc/ld.so.cache
   Navadno se ga pozene ob startu sistema (iz rc skript), ce pa se
   instalira nove sharane knjiznice, pa tudi vmes.

LINKER /usr/bin/ld iz .o fajlov z uporabo knjiznic (staticnih in sharanih)
   naredi executable. No, pa se kaj drugega, recimo sharane knjiznice.
   Navadno ga ne klicemo direktno, ampak ga klice kar prevajalnik.
   Poti, v katerih isce knjiznice, ki jih mora linkati, so deloma
   prevedene v sam program, ostale pa mu moramo podati kot opcije
   (-L/prva/pot -L/druga/pot ...). V executable shrani tudi direktorije,
   v katerih naj LOADER potem isce knjiznice. Navadno vkljuci vse
   poti, podane z -L, lahko pa mu ukazemo dodati se kaksno pot.


Upam, da po zgornji razlagi ne bo vec mesanja jabolk in jablan.

Peace!
  Mkx





Dodatne informacije o seznamu Starilist