Referência indefinida a 'sqrt' de math.h no ps3 com ydl 6.1 e célula sdk 3.1?
Pergunta
Eu tenho um PS3 que instalei o YDL 6.1 e o SDK 3.1 e tudo parece estar funcionando bem, pois posso compilar e executar os exemplos. No entanto, encontrei alguns problemas com os meus próprios programas. Eu criei um pequeno caso de teste que parece identificar a causa da falha. Eu tenho o seguinte 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;
}
Quando eu corro
ppu-gcc mathtest.c
Estou tendo o erro a seguir
/tmp/ccFqwJdG.o:(.text+0x20): undefined reference to `sqrt'
collect2: ld returned 1 exit status
Eu já verifiquei para garantir que a matemática exista neste sistema e ele defina o SQRT. Eu também já tentei executar isso:
ppu-gcc -I/usr/includes/ mathtest.c
Mas isso resulta no mesmo erro. Estou confuso, alguém tem alguma idéia?
Solução
Às vezes, recebi erros semelhantes no Linux, usando -lm como um parâmetro GCC ajudado lá. Talvez isso faça aqui também. O parâmetro também diz ao vinculador para incluir a biblioteca de matemática.