[ 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