使用YDL 6.1和Cell SDK 3.1在PS3上使用math.h对'sqrt'进行未定义的引用?
题
我有一个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
但它会导致相同的错误。我很困惑,有人有任何想法吗?
解决方案
我有时在Linux上遇到类似的错误,使用-lm作为gcc参数有帮助。也许它也在这里。该参数也告诉链接器包含数学库。
不隶属于 StackOverflow