Неопределенная ссылка на 'sqrt' из math.h на PS3 с YDL 6.1 и Cell SDK 3.1? - PullRequest
3 голосов
/ 04 марта 2009

У меня PS3, на котором я установил YDL 6.1 и 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

но это приводит к той же ошибке. Я в замешательстве, у кого-нибудь есть идеи?

1 Ответ

4 голосов
/ 04 марта 2009

Я иногда получал похожие ошибки в Linux, используя -lm в качестве параметра gcc. Возможно, и здесь. Параметр указывает компоновщику также включать библиотеку математики.

...