0

这是我的代码。

#include <stdio.h>

int main(){
int first;
int second;
int third;
float average=0.0;

    printf ("This program will find the average of 3 numbers.\n");
    delay(1000);
    printf ("Type the first number.\n");
    scanf ("%d", &first);
    printf ("Type the second number.\n");
    scanf ("%d", &second);
    printf ("Type the third number.\n");
    scanf ("%d", &third);
    average = (first+second+third)/2.0;
    printf ("The average of %d, %d, and %d is %.3f\n", first, second, third, average);

return (0);
}

当我使用 gcc 编译它说

Undefined symbols for architecture x86_64:
  "_delay", referenced from:
      _main in cc62F0GD.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

我是编码的初学者。这是什么意思,我该如何解决?

4

4 回答 4

1

您需要在函数#include<stdlib.h>代码中包含文件,它没有在delay()stdio.h

但我建议不要使用它,而是使用大多数基于 Unix 的操作系统建议的unsigned int sleep(unsigned int seconds);功能 from #include <unistd.h>.

阅读不要使用延迟()

于 2013-07-22T17:13:50.883 回答
1

使用sleep()而不是延迟()

EX : sleep(1)= 1 秒延迟

于 2013-07-22T17:18:40.533 回答
1

编辑

由于代码在 linux 环境中运行,您可以使用sleep而不是delay。头文件是unistd.h

于 2013-07-22T17:21:05.310 回答
0

这里你得到的错误是表单加载器

ld: symbol(s) not found for architecture x86_64

我不确定,但请检查可执行文件中存在的符号。

使用nm命令检查可执行文件中存在的符号。

http://linux.die.net/man/1/nm

delay()在不支持GCC使用sleep()

http://pubs.opengroup.org/onlinepubs/009695399/functions/sleep.html

于 2013-07-22T17:21:06.123 回答