Σχετικά με το LD_PRELOAD

Giannis Papaioannou jhn at aix.meng.auth.gr
Fri May 5 21:43:53 EEST 2006



Panagiotis Atmatzidis wrote:
> Raoul wrote:
>> On Fri, 2006-05-05 at 15:22 +0300, Emm Vasilakis wrote:
>>> On Παρ, 2006-05-05 at 13:36 +0300, Raoul wrote:
>>>> Μπορεί κάποιος να μου εξηγήσει με δυο λόγια τι ακριβώς κάνει το
>>>> LD_PRELOAD?
>>>>
>>>> Για παράδειγμα, κάποιο πρόγραμμα, αν το τρέξει κανείς κατευθείαν:
>>>>
>>>> # ./someprogram
>>>>
>>>> ...δεν τρέχει επειδή δεν μπορεί να βρει μια βιβλιοθήκη πχ
>>>> libsomething.so.0
>>>> Αν το τρέξει:
>>>>
>>>> # LD_PRELOAD=/usr/lib/libsomething.so.0 ./someprogram
>>>>
>>>> ...τότε λειτουργεί.
>>>>
>>>> Εφόσον μια βιβλιοθήκη έχει εγκατασταθεί στο /usr/lib/ και έχει τρέξει το
>>>> ldconfig, πώς είναι δυνατόν να μην τη βρίσκει το πρόγραμμα?
>>>>
>>> To ldd ./someprogram ti leei?
>>>
>> Αυτό είναι το output. Η libsomething που γράφω παραπάνω είναι η /usr/lib/libalut.so.0
>>
>>         linux-gate.so.1 =>  (0x00785000)
>>         libGL.so.1 => /usr/lib/nvidia/libGL.so.1 (0x07c39000)
>>         libGLU.so.1 => /usr/lib/libGLU.so.1 (0x07bbd000)
>>         libXext.so.6 => /usr/lib/libXext.so.6 (0x00afb000)
>>         libX11.so.6 => /usr/lib/libX11.so.6 (0x009ae000)
>>         libopenal.so.0 => /usr/lib/libopenal.so.0 (0x00517000)
>>         libpthread.so.0 => /lib/libpthread.so.0 (0x00ba6000)
>>         libdl.so.2 => /lib/libdl.so.2 (0x008ff000)
>>         libm.so.6 => /lib/libm.so.6 (0x008d8000)
>>         libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x006dd000)
>>         libc.so.6 => /lib/libc.so.6 (0x007a3000)
>>         libGLcore.so.1 => /usr/lib/nvidia/libGLcore.so.1 (0x07414000)
>>         libnvidia-tls.so.1 => /usr/lib/nvidia/tls/libnvidia-tls.so.1 (0x00dfc000)
>>         libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x058a3000)
>>         libXau.so.6 => /usr/lib/libXau.so.6 (0x00aad000)
>>         libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00ab2000)
>>         /lib/ld-linux.so.2 (0x00786000)
>>
>> Δεν βλέπω πουθενά libalut
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>>
> 
> Στο manpage λέει ότι δεν χρειάζεται αλλά δοκίμασε να βάλεις το path στο 
> /etc/ld.so.conf μήπως και το δεί το ldconfig.

den 8a boh8hsei se tipota afou h ldd deixnei o to programma den psaxnei
thn libalut, ara den 8a thn brei pote.

h ld_preload xrhsimopoieitai gia na fortw8oun biblio8hkes pou den
gnwrize o linker thn wra tou compile, synh8ws parallages twn arxikwn
biblio8hkwn. isws h libalut.so na htan meros ths libopenal.so thn wra
tou linking.

> 
> 

-- 
JHN




More information about the Linux-greek-users mailing list