У меня есть PS3, на котором я установил YDL 6.1 и SDK 3.1, и все, кажется, работает нормально, поскольку я могу скомпилировать и запустить примеры. Тем не менее, у меня возникли проблемы с написанием собственных программ. Я создал небольшой тестовый пример, который, по-видимому, указывает причину сбоя. У меня есть следующий код:Неопределенная ссылка на 'sqrt' от math.h на PS3 с YDL 6.1 и Cell SDK 3.1?
// 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;
}
Когда я затем запустить
ppu-gcc mathtest.c
Я получаю следующую ошибку
/tmp/ccFqwJdG.o:(.text+0x20): undefined reference to `sqrt'
collect2: ld returned 1 exit status
Я уже проверил, чтобы убедиться, что math.h существует в этой системе и он определяет sqrt. Я также пробовал использовать это:
ppu-gcc -I/usr/includes/ mathtest.c
, но это приводит к такой же ошибке. Я в замешательстве, у кого есть идеи?
Да, это, кажется, исправить. Странно, как некоторые платформы (Linux) требуют привязки к математике, в то время как другие не делают (OS X), хотя причины, по которым os x не требует связывания, могут быть связаны с рядом источников (libc vs apple libs, изменения яблок в gcc , и т.д). –