Ho appena scoperto che il flag -lm
è necessario da gcc per compilare un programma che fa riferimento a una funzione dalla libreria matematica. Mi chiedo il motivo per cui un flag esplicito di collegamento non è necessario durante la compilazione di programmi contenenti altre librerie come la libreria di orari. Se scrivo un programma in cui viene chiamata la funzione time()
, si compila senza problemi anche senza opzioni di collegamento. Ma un programma con la libreria matematica coinvolta non funzionerà senza il flag -lm
.gcc: perché il flag -lm è necessario per collegare la libreria matematica?
Qualcuno può spiegare la ragione di questo comportamento? Grazie per il tuo tempo.
Strani motivi storici, ma soprattutto perché è come è: http://stackoverflow.com/questions/1033898/why-do-you-ha-to-link-the-math-library-in-c – birryree