我有一个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参数有帮助。也许它也在这里。该参数也告诉链接器包含数学库。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top