[ Foro de C ]
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 :)
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 !!
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.)