2013-03-01 106 views
0

test1.c

#include <stdio.h> 

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

當我嘗試編譯...Ç初學者:在一個簡單的C程序

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上執行此操作。

+0

幾乎每個人的答案都在幫助我。多謝你們。睡覺很好。 – Beaon 2013-03-01 01:05:29

回答

4

在C中沒有延遲功能,您必須使用sleepusleep,具體取決於您所在的操作系統。

+1

現在 - 等一下。有可能OP正在爲另一個OSX系統讀取一本書,在這種情況下,可能會有一個名爲'delay'的函數。 POSIX中沒有一個(這是OSX的主要基礎)。 – 2013-03-01 00:55:32

1

遲遲未能下UNIX操作系統的替代方案是睡眠功能: 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個microsecondes。

+1

請注意,'usleep'需要*微秒*,而不是毫秒。 – 2013-03-01 00:56:40

+1

我認爲你的意思是微秒。 – 2013-03-01 00:56:44

+1

編輯,對我的錯誤感到抱歉。 – Hulor 2013-03-01 00:58:26

0

延遲函數在Borland C編譯器中工作。您必須使用dos.h頭文件才能使用延遲。其他一些編譯器如MinGW可能不支持這一點。