2010-08-24 33 views
5

¿Cómo uso las funciones pow() y sqrt() en Ubuntu? He incluido el archivo de encabezado math.h pero todavía me da un error.¿Cómo uso pow() y sqrt() en UNix?

+2

¿Cuál es el error que está obteniendo? –

+0

Usar 'pow' es a menudo un error. Si estas son las dos únicas funciones matemáticas que está usando (para las cuales necesita '-lm'), tal vez quiera comprobar si realmente quiere' pow'. Si el exponente siempre es un número entero, y/o si la base es 2, hay maneras mucho mejores (tanto más rápidas como precisas con garantía, a diferencia de 'pow') de hacerlo. –

Respuesta

7

Enlace a libm.so, agregando -lm a los parámetros de la línea de comando del compilador.

+0

ok, entonces, ¿qué dicen ustedes ... que debería agregar -lm after cc en mi comando de compilación, ¿o sí? – Pavitar

+0

Sí, exactamente. (relleno). –

+1

Ponga el '-lm' al final de la línea, después de todos los archivos .o y otras bibliotecas. En general, coloque '-libro' después de todos los archivos .o, de modo que a medida que lea la línea de izquierda a derecha, el enlazador pueda encontrar todas las funciones que debería incluir sin volver a explorar la línea. Sí, algunos entornos soportan poner las cosas en cualquier orden, pero esta regla de oro te ahorrará mucho dolor cuando pases a plataformas que no lo hacen. Tenga en cuenta que la mayoría de los toolchains en Windows prefieren este orden, por ejemplo. – RBerteig

9

Intente agregar -lm a su comando de enlazador. La mayoría de las funciones matemáticas se encuentran en libm y deben vincularse explícitamente en.

Cuestiones relacionadas