3
我有一個PS3,我已經安裝了YDL 6.1和SDK 3.1,並且一切似乎都正常,因爲我可以編譯和運行示例。不過,我在編寫自己的程序時遇到了一些問題。我創建了一個小型測試案例,可以查明失敗的原因。我有以下代碼:在Y3 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;
}
當我再運行
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),儘管os x不需要鏈接的原因可能來自許多來源(libc vs Apple libs,蘋果對gcc的修改等)。 – 2009-03-04 21:54:08