C初学者:不能在简单的C程序中使用delay()

时间:2013-03-01 00:49:50

标签: c macos compilation delay

test1.c

#include <stdio.h>

int main(void) {
  printf("test\n");
  delay(1000);
  printf("test2\n");
}

当我尝试编译......

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

当然,在这里有一个教训,了解你的图书馆和链接是什么......我缺少什么?我想在OSX上做这个。

4 个答案:

答案 0 :(得分:4)

C中没有延迟功能,您必须使用sleepusleep,具体取决于您所使用的操作系统。

答案 1 :(得分:1)

是什么让你觉得有延迟功能。我没有在osx文档中看到一个。有一个睡眠功能

https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man3/sleep.3.html

答案 2 :(得分:1)

unix os的C语言延迟的另一种选择是睡眠功能: https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man3/sleep.3.html 做类似的事情:

#include <stdio.h>
#include <unistd.h>

int main(void) {
  printf("test\n");
  usleep(1000);
  printf("test2\n");
}

如果您的值是1000微秒。

答案 3 :(得分:0)

延迟功能在Borland C编译器中有效。您必须使用dos.h头文件才能使用延迟。其他一些编译器(如MinGW)可能不支持此功能。