这是我的代码。
#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
我是编码的初学者。这是什么意思,我该如何解决?
答案 0 :(得分:1)
您需要在#include<stdlib.h>
函数的代码中包含delay()
文件,该文件未在stdio.h
中定义
但我建议不要使用它,而是使用大多数基于Unix的操作系统建议来自#include <unistd.h>
的{{3}}函数。
答案 1 :(得分:1)
使用sleep()
代替延迟()
EX:sleep(1)
= 1秒延迟
答案 2 :(得分:1)
修改强>
由于代码是在linux环境下运行的,因此您可以使用 sleep 而不是延迟。头文件是 unistd.h 。
答案 3 :(得分:0)
这里你得到的错误是表单加载器
ld: symbol(s) not found for architecture x86_64
我不确定但是检查您的可执行文件中是否存在符号。
使用 nm 命令检查可执行文件中存在的符号。
delay()
使用GCC
不支持 sleep()
http://pubs.opengroup.org/onlinepubs/009695399/functions/sleep.html