簡體   English   中英

為什么在Xcode 6中編譯C庫時,在C99中發生了函數“ usleep”的隱式聲明無效?

[英]Why the Implicit declaration of function 'usleep' is invalid in C99` happened when compile C library in Xcode 6?

我嘗試在Xcode 6中創建C庫,但它在代碼usleep(2*1000*1000);處編譯錯誤usleep(2*1000*1000);

錯誤日志是

/Users/apk/Desktop/test/test.c:37:9: Implicit declaration of function 'usleep' is invalid in C99

另一個是/Users/apk/Desktop/test/test.c:37:9: Declaration of 'usleep' must be imported from module 'Darwin.POSIX.unistd' before it is required

test.c的代碼部分如下所示:

#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

int test(const char* dest) {

    ...

  usleep(2*1000*1000);


}

test.h的代碼如下所示:

#ifndef __TEST_H__
#define __TEST_H__

int test(const char* dest);

#endif

是否由於找不到頭文件<netinet/in.h>而發生錯誤?

還是我錯過了什么?

提前致謝。

您的編譯器無法找到usleep()前向聲明 您需要添加包含usleep()聲明的頭文件。 請添加#include <unistd.h>

另外,您可以檢查手冊頁中的usleep()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM