Riferimento indefinito a 'sqrt' da math.h su PS3 con YDL 6.1 e Cell SDK 3.1?
Domanda
Ho una PS3 su cui ho installato YDL 6.1 e SDK 3.1 e tutto sembra funzionare bene, dato che posso compilare ed eseguire gli esempi. Tuttavia, ho riscontrato alcuni problemi con la scrittura dei miei programmi. Ho creato un piccolo test case che sembra individuare la causa dell'errore. Ho il seguente codice:
// 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 eseguo quindi
ppu-gcc mathtest.c
Ricevo il seguente errore
/tmp/ccFqwJdG.o:(.text+0x20): undefined reference to `sqrt'
collect2: ld returned 1 exit status
Ho già verificato per accertarmi che math.h esista su questo sistema e che definisca sqrt. Ho anche già provato a eseguire questo:
ppu-gcc -I/usr/includes/ mathtest.c
ma provoca lo stesso errore. Sono confuso, qualcuno ha qualche idea?
Soluzione
A volte ho avuto errori simili su Linux, usando -lm come parametro gcc aiutato lì. Forse lo fa anche qui. Il parametro indica al linker di includere anche la libreria matematica.