无法在Cygwin中使用#include 编译C代码

我试图使用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  #include  int main (void) { return 0; } 

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

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

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

也许你正在使用MinGW版本的gcc而不是Cygwin gcc? 尝试使用which gcc来确保它是/usr/bin/gcc ,还有gcc --version以确保它不像mingw32-gcc.exe (GCC) xxx那样显示。

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

 gcc -v test.c 

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

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

正如我在这里提到的那样,它的使用实际应该从代码中删除以使其编译。