¿Referencia indefinida a 'sqrt' de math.h en PS3 con YDL 6.1 y Cell SDK 3.1?
Pregunta
Tengo una PS3 en la que instalé YDL 6.1 y SDK 3.1 y todo parece funcionar bien, ya que puedo compilar y ejecutar los ejemplos. Sin embargo, me he encontrado con algunos problemas con la escritura de mis propios programas. He creado un caso de prueba pequeño que parece señalar la causa del error. Tengo el siguiente código:
// mathtest.c
#include <stdio.h>
#include <math.h>
int main ()
{
double param, result;
param = 1024.0;
result = sqrt (param);
printf ("sqrt(%lf) = %lf\n", param, result );
return 0;
}
Cuando luego corro
ppu-gcc mathtest.c
Recibo el siguiente error
/tmp/ccFqwJdG.o:(.text+0x20): undefined reference to `sqrt'
collect2: ld returned 1 exit status
Ya verifiqué para asegurarme de que math.h existe en este sistema y lo define sqrt. También he intentado ejecutar esto:
ppu-gcc -I/usr/includes/ mathtest.c
pero da como resultado el mismo error. Estoy confundido, ¿alguien tiene alguna idea?
Solución
Algunas veces recibí errores similares en Linux, usando -lm como un parámetro gcc ayudó allí. Quizás aquí también lo hace. El parámetro le dice al vinculador que incluya también la biblioteca matemática.