2012-08-06 47 views
-3

我有我的机器的主机名。我使用<unistd.h>头文件中的gethostname()函数。我下载了here<unistd.h>,但是当我试图编译,编译器报告以下错误:关于<unistd.h>头文件

"Cannot open include file: 'sys/cdefs.h': No such file or directory". 

什么问题?

+0

您是否在Windows中尝试此代码?? \ – perilbrain 2012-08-06 10:56:58

+10

您不能从随机网站下载头文件并期望它能正常工作。即使它编译了,你也会得到一个链接错误。 – interjay 2012-08-06 11:01:51

+0

@interjay heaader文件与链接器错误大多无关。在绝大多数情况下,外部头文件不会编译。 – 2012-08-06 11:08:28

回答

11

大概,你使用的是Windows或其他非POSIX平台;否则,<unistd.h>应该已经可用。

在这种情况下,你不能简单地下载并包含随机的Unix头文件,并期望它们工作;您需要使用Windows版本(在这种情况下,我认为是<Winsock2.h> gives that function),或者使用类似Unix的环境,例如MinGW