[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