Originariamente inviato da Ippo343
Perchè il linker non ha idea di cosa diavolo sia un file .c.
Il linker collega dei moduli compilati: non è sufficiente distribuire il file .h, ma è necessario anche il file compilato.



No. Il linker non elabora mai un .c, ma sempre e solo file compilati: come puoi distribuire gli header di una libreria senza distribuirne l'implementazione?
io ho detto che non gli fornisco il .c non che non gli fornisco la libreria
gli fornisco la libreria già compilata (in questo modo può usarla ma il codice c resta comunque a lui sconosciuto) e l'header file .h ( nel quale sono presenti anche i commenti di documentazione in modo che comunque sappia quali funzioni richiamare e cosa fanno)

a quel punto è il linker che si deve occupare di sistemare le dipendenze irrisolte tra il programma del client e la/le librerie