[ Foro de C ]

Problemas con sqrt() con gcc, ayuda por favor!!

01-Nov-2011 05:13
Sam Garcia
2 Respuestas

Que tal!

Estoy realizando un programa simple que me muestre la raiz cuadrada de un numero.
Este es el codigo:

#include <stdio.h>
#include <math.h>
main(){
double a=9;
printf("raiz cuadrada de 9 %f",sqrt(a));
getchar();
}

El problema es que al compilar desde la terminal

cc prueba.c -oprueba

Me sale este error:

/tmp/ccA4JrHC.o: In function `main':
prueba.c:(.text+0x2d): undefined reference to `sqrt'
collect2: ld devolvió el estado de salida 1

Pero curiosamente, al cambiar la variable "a" por el valor 9 el programa compila sin ningun problema.
Ya probe con todos los tipos de variables.

Mi sistema operativo es Ubuntu 11.10 de 64 bits, eso esta afectando?

Por favor, solicito una solucion.
Gracias :)


01-Nov-2011 05:30
Sam Garcia

Les cuento amigos mios, que he continuado probando e investigando, y he encontrado que el programa compila usando el mismo codigo, de la siguiente manera:

cc prueba.c -lm -oprueba

Segun lo lei por ahi, con esa instruccion enlaze la libreria math.
Si hay algun otro modo de hacerlo, o me podrian ampliar un poco la explicacion del error y su solucion, se los agradeceria bastante. :D  !!


01-Nov-2011 10:34
Nacho Cabanes (+31)

Efectivamente, ese era el problema: en algunos compiladores la librería "math" no se enlaza si no lo indicas explícitamente, de modo que no consigue crear un ejecutable.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)