[FoLUG]gcc e kernel-headers

Massimo Piccioni folug@lists.linux.it
Thu, 18 Jul 2002 19:58:29 +0200


>
>
>Ma linkare non significa collegare una parte di eseguibile ad un'altra? 
>"diventano parte del tuo eseguibile" non mi sembra in questo caso corretta, 
>perchč mi pare che pił programmi che usano le stesse funzioni di libreria non 
>carichino 2 volte in memoria lo stesso codice.
>  
>

dipende se usi link dinamico (librerie dinamiche, shared, ecc. quelle 
con estensione .so .sl e cosi' via) o il link statico (librerie 
statiche, estensione .a).

nel primo caso tu generi l'eseguibile "spoglio", con solo i riferimenti 
alla libreria, che in realta' viene caricata dal sistema automaticamente 
quando lanci l'eseguibile ed il link finale viene eseguito a tempo di 
esecuzione; se per di piu' la libreria e' "shared" il sistema la carica 
una volta sola per tutti gli applicativi che la usano.

nel secondo caso, invece, le librerie entrano effettivamente nel binario 
(file piu' grosso), quindi risultano "replicate" all'interno di ogni 
eseguibile che le usa (maggiori esigenze di memoria)

per motivi evidenti il primo caso e' preferito
l'espressione "diventano parte ..." serviva solo a far capire la 
differenza fra link e inclusione

ciao
Massimo