2009-03-04 11 views
3

PS3에 YDL 6.1과 SDK 3.1을 설치했는데 예제를 컴파일하고 실행할 수 있기 때문에 모든 것이 잘 작동하는 것 같습니다. 그러나, 나는 내 자신의 프로그램을 작성하는 데 몇 가지 문제를 겪었다. 나는 실패의 원인을 찾아내는 것처럼 보이는 작은 테스트 케이스를 만들었습니다.YDL 6.1 및 Cell SDK 3.1을 사용하는 PS3의 math.h에서 'sqrt'에 대한 정의되지 않은 참조가 있습니까?

// 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; 
} 

그때 나는 이미 math.h이 시스템에 있는지 확인하기 위해 검사

/tmp/ccFqwJdG.o:(.text+0x20): undefined reference to `sqrt' 
collect2: ld returned 1 exit status 

다음과 같은 오류를 얻을

ppu-gcc mathtest.c 

을 실행 나는 다음과 같은 코드가 있습니다 sqrt를 정의합니다. 나는 또한 이것을 실행하려고 시도했다 :

ppu-gcc -I/usr/includes/ mathtest.c 

그러나 같은 오류가 발생한다. 나는 혼란 스럽다.

답변

4

가끔 Linux에서 비슷한 오류가 발생하여 gcc 매개 변수로 -lm을 사용하여 도움을 받았습니다. 아마도 여기에서도 마찬가지입니다. 이 매개 변수는 링커에게 수학 라이브러리를 포함하도록 지시합니다.

+0

그래, 고칠 것 같습니다. 어떤 플랫폼 (리눅스)이 수학과 연결을 필요로하는지, 다른 것들은 (OS X)을 연결하지 않아도되는 이상한 점은 os x가 링크를 필요로하지 않는 이유는 여러 소스 (libc vs apple libs, gcc , 등). –