[FoLUG]domanda sulle librerie C

Stefano Giunchi folug@lists.linux.it
Sun, 16 Feb 2003 10:50:32 +0100


Questa è una cosa che mi incuriosisce molto.
Premetto che, anche se ho modificato programmi in C, non sono un 
programmatore C ed attualmente non saprei neanche da dove cominciare.

Un problema di Linux è che ogni volta che c'è un passaggio di versione 
delle librerie standard glibc, certi programmi smettono di funzionare se 
non ricompilati con le nuove versioni.
Ora mi chiedo: in DOS, e poi Windows, con i compilatori di qualsiasi 
marca (MS, Watcom, Borland) le librerie venivano linkate all'interno 
dell'eseguibile, soprattutto nei programmi ad interfaccia a caratteri o 
TSR (che volevano essere 'circa' i daemons di Unix).
Successivamente, è venuta la possibilità di interfacciarsi alle DLL 
(librerie a caricamento dinamico, che da quello che capisco è lo stesso 
metodo che viene utilizzato per le glibc), ma per la libreria standard 
(quella definita nel libro "linguaggio C") la cosa migliore era linkarla 
all'interno dell'eseguibile, vista la sua esigua dimensione, rendendolo 
molto più indipendente dalle varie versioni di libreria installate nel 
sistema.

Ora, perché invece in Linux è pratica comune fare link a librerie 
esterne, invece che integrarle nell'eseguibile? E' forse che le librerie 
standard siano diventate così enormi (ma perchè?) da non poter essere 
più una soluzione valida il link statico?

Stefano