无法在Cygwin </sys>中使用#include <sys times.h =“”>编译C代码

时间:2012-10-05 15:33:36

标签: c cygwin

我试图使用Cygwin在Windows 7中安装/编译诸如igraph和SNAP之类的库(并且还尝试了MinGW-MSYS)并且遇到了一些问题。

我认为我已将问题缩小到./configure给出的错误:

checking sys/times.h usability... no
checking sys/times.h presence... no
checking for sys/times.h... no

在Cygwin中,/usr/include/sys/times.h确实存在。我为MinGW搜索了这个,似乎sys / times.h不适用于MinGW,因为“ POSIX / BSD”次“函数不是ANSI标准的一部分,并且在Mingw32运行时不存在

作为一个实验,我尝试使用gcc:

在Cygwin中编译这个C代码
#include <stdio.h>
#include <sys/times.h>

int main (void) 
{

      return 0;
}

这不会编译,错误为sys/times.h no such file or directory。即使我将包含更改为</usr/include/sys/times.h><usr/include/sys/times.h>,也会发生这种情况。在Cygwin命令中,Promot /usr/include/sys/times.h正常工作。

问题

如何获得sys / times.h的可用性和存在感?我可以安装一个包或库吗?

2 个答案:

答案 0 :(得分:5)

您的代码在我的Cygwin上编译没有任何问题。实际上/usr/include是gcc的默认包含搜索路径之一,因此通常gcc应该能够找到sys/times.h

也许您正在使用MinGW版本的gcc而不是Cygwin gcc?请尝试which gcc以确保/usr/bin/gccgcc --version,以确保它不会显示为mingw32-gcc.exe (GCC) x.x.x

您还可以尝试使用详细输出编译C文件:

gcc -v test.c

它显示了gcc如何搜索包含文件。如果您使用Cygwin的gcc,/usr/include应该是搜索路径列表之一。

答案 1 :(得分:2)

正如我发现的那样,这个问题似乎存在一些内在问题,并且sys / times.h不应该在windows下使用(由于某种原因不支持)。

正如我前面提到的那样here,实际上应该从代码中删除它以使其编译。