Cosa fa l'opzione -lm
in g ++ e quando è necessaria?Cosa fa l'opzione -lm in g ++?
Esiste una descrizione completa delle opzioni g ++?
Cosa fa l'opzione -lm
in g ++ e quando è necessaria?Cosa fa l'opzione -lm in g ++?
Esiste una descrizione completa delle opzioni g ++?
Questa è un'opzione di collegamento. Indica al linker di collegare (-l
) alla libreria m
(libm.so/dll). Questa è la biblioteca di matematica. Ne hai spesso bisogno se si è #include <math.h>
.
L'opzione non fa nulla per g++
: riferendosi a questa risposta https://stackoverflow.com/a/1033940/1143274libstdc++
richiede libm
, quindi sarà sempre legata da g++
.
Tuttavia, v'è anche una sorta di un comportamento collegamento automatico per gcc
, indagato su questo thread http://www.linuxforums.org/forum/programming-scripting/125526-c-gcc-math-h-lm.html che io non riesco a trovare una risposta su dove che viene da e quali librerie si applica a ...
C'è una lista completa nella documentazione di GCC (man gcc). – Mat
Il duplicato di [sqrt da math.h causa l'errore di compilazione] (http://stackoverflow.com/questions/1711915/sqrt-from-math-h-causes-compile-error). Anche in relazione a [gcc: perché è necessario il flag -lm per collegare la libreria matematica?] (Http://stackoverflow.com/questions/4606301/gcc-why-the-lm-flag-is-needed-to-link -the-math-library) – Abhijit
possibile duplicato di [Why I'm Getting "riferimento indefinito a' sqrt '"Errore, anche se includo l'header math.h?] (http://stackoverflow.com/questions/10409032/ why-im-getting-undefined-reference-to-sqrt-error-even-though-i-include-ma) –