[so] Legare biblioteci

Cosmin Ratiu cosminratiu at gmail.com
Wed Mar 10 12:03:40 EET 2010


2010/3/10 Daniel Baluta <daniel.baluta at gmail.com>

> 2010/3/10 Cosmin Ratiu <cosminratiu at gmail.com>:
> > Din cate inteleg eu din -l din manual, se pare ca cauta intai .a si apoi
> > .so.
>
> Hmm, mie din pagina de manual nu mi se pare clar care bibliotecă
> este căutată prima.
>

Din "The only difference between using an -l option and specifying a file
name is that -l surrounds library with lib and .a and searches several
directories" si din "The linker searches a standard list of directories for
the library, which is actually a file named liblibrary.a.  The linker then
uses this file as if it had been specified precisely by name" am inteles ca
prefera .a-urile default.

Din experienta stiu ca se leaga si so-urile cu acelasi -llibrary. Presupun
ca e manual-ul confuz.

Un exemplu simplu, pentru un executabil legat cu -lm arată că
> întâi se caută .so
>
> $ gcc -o test test.c -lm
> $ ldd test
> linux-gate.so.1 =>  (0x00f62000)
> libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0x00581000)
> libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0x00aa0000)
> /lib/ld-linux.so.2 (0x00ce5000)


> De asemenea ([1]) spune că default se încarcă bibliotecile partajate.
>
> thanks,
> Daniel.
>
> [1] http://www.network-theory.co.uk/docs/gccintro/gccintro_25.html
>
>
Da, aici scrie negru pe alt ce se intampla de fapt :).
Well, you learn something new every day.

Cosmin.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20100310/4344d351/attachment.htm>


More information about the so mailing list