[ Foro de C ]
Buenas, me encuentro en el apartado de funciones matemáticas.
Estoy haciendo los ejercicios pero en los dos tengo el mismo problema ya que hago el codigo que estoy seguro que está bien pero al compilar sale esto:
gcc -Wall -o "ec2grado" "ec2grado.c" (en el directorio: /home/pc/Documentos/programacionC/programasenC/funciones)
/tmp/ccf5gzzX.o: In function `main':
ec2grado.c:(.text+0xba): undefined reference to `sqrt'
ec2grado.c:(.text+0x100): undefined reference to `sqrt'
collect2: ld devolvió el estado de salida 1
Ha fallado la compilación.
pongo el codigo por si es necesario:
/*Crear un programa que resuelva ecuaciones de segundo grado, del tipo ax2 + bx + c =
0 El usuario deberá introducir los valores de a, b y c. Pista: la solución se calcula con
x =(-b ± raíz (b2 ? 4·a·c)) / 2·a */
#include <stdio.h>
#include <math.h>
int main()
{
float a,b,c;
float x1, x2;
printf("Este programa nos permitirá resolver ecuaciones de segundo grado");
printf("Introduce el parámetro a");
scanf("%f", &a);
printf("Introduce el parámetro b");
scanf("%f", &b);
printf("Introduce el parámetro c");
scanf("%f", &c);
x1 = (-b + sqrt ((b*b) - (4*a*c))) / (2*a);
x2 = (-b - sqrt ((b*b) - (4*a*c))) / (2*a);
printf("Las soluciones de la ecuación son:"
" x1=%f.\n x2=%f.\n",x1,x2);
return 0;
}
No se cual es el problema pero creo que no es del código si no del programa o algo asi.
Por si es útil utilizo ubuntu 12.04 y programo con el edito geany
Espero que me ayudeis.
Muchas gracias.
Efectivamente, en algunos compiladores de C, típicamente en la versión de GCC para Linux, no se enlaza la biblioteca de matemáticas si no lo pides de forma explícita (si compilas en C++ con "g++" sí se enlaza, pero no en C puro).
La solución es añadir la opción "-lm" al final de la línea de comandos ("link math"):
gcc -Wall -o "ec2grado" "ec2grado.c" -lm
Por cierto, voy a comprobar si este detalle lo especifiqué en la versión PDF del curso (que es la que actualizo de vez en cuando), y si no es así, lo añado, porque voy a lanzar una versión actualizada pronto.
Muchas gracias. Yo sigo la versión 0.90 del PDF y en esa versión no está añadida.
Haces bien en añadirlo porque yo llevo un día buscando cual podría ser el fallo y como solucionarlo.
Muchas gracias de nuevo.
(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.)