[so] Legare biblioteci

Daniel Baluta daniel.baluta at gmail.com
Wed Mar 10 11:44:46 EET 2010


2010/3/10 Cosmin Ratiu <cosminratiu at gmail.com>:
>
> 2010/3/10 Andrei Soare <andrei.soare at gmail.com>
>>
>> Salut,
>>
>> Am si eu doua intrebari referitoare la legarea bibliotecilor. Sa zicem
>> ca am intr-un director:
>>
>> hello.o
>> libexemplu1.a
>> libexemplu1.so
>> libexemplu2.a
>> libexemplu2.so
>>
>> si vreau sa leg la hello.o ambele biblioteci. In primul rand, daca scriu:
>>
>> gcc hello.o -lexemplu1 -lexemplu2 -L. -o hello
>>
>> ce bibliioteci se vor lega ? Cele statice sau cele dinamice ?
>
> 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.

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


More information about the so mailing list