On Saturday 18 January 2003 23:48, Bogdan Marinca wrote:
> Salut.
  Salut
> Cum (ce optiuni sa'i pasez lui gcc (g++) sau in ce alt mod)
> as putea sa fac executabilul sa aiba functiile referite din
> 2 biblioteci prezente (linkeditate) static in el iar pe cele
> din glibc sa fie linkeditate dinamic (cu shared libraries) ?
  Bibliotecile statice sunt cele care au .a in coada ( de exemplu 
/usr/lib/libefence.a ), cele dinamice sunt cele cu .so in coada. Daca 
la comanda pentru linkeditare (fie ca folosesti ld, fie compilatorul) 
ii specifici biblioteca statica in loc de cea dinamica va lega ceea ce 
ii spui tu.
  De exemplu
    $ g++ -dynamic -o programelu /usr/lib/libefence.a -lpthread main.o 
funct.o utils.o
  o sa iti lege static biblioteca "efence", si dinamic biblioteca 
pthread. Acum mai sunt cateva reguli in plus:
  - compilatorul poate fi configurat (si de obicei este) sa lege 
implicit dinamic bibliotecile specificate cu -l . asta inseamna ca nu 
mai e nevoie de -dynamic
  - traiesc cu impresia ca daca biblioteca dinamica specificata cu -l nu 
este gasita se cauta biblioteca statica ( lib<name>.a )
  - bibliotecile se comporta de fapt ca niste fisiere-obiect, nu e 
nevoie neaparata de -l, daca specifici calea catre biblioteca.
  Poate gcc-ul are o cale mai rafinata de a specifica modul de legare - 
ce am spus mai sus este modul in care l-am folosit eu. Hope it helps.

> In plus as vrea sa stiu daca in acest proces, in executabil sunt
> prezente strict functiile folosite sau cele dependente, din cele 2
> biblioteci, sau continutul intreg al celor 2 bibioteci (cu care am
> incercat linkeditare statica).
  La linkeditare statica se adauga biblioteca intr-un mod destul de 
putin elegant, adica se adauga toata. Cel mai simplu test in sensul 
asta este sa faci un program care face doar un printf si sa il 
compilezi cu gcc -static -o proggie programcuprintf.c
  Bafta
-- 
Dorin "sp00ky" Lazar, programmer
Registered Linux user #162515

---
Pentru dezabonare, trimiteti mail la 
[EMAIL PROTECTED] cu subiectul 'unsubscribe rlug'.
REGULI, arhive si alte informatii: http://www.lug.ro/mlist/


Raspunde prin e-mail lui