在Cygwin / MinGW中安装/编译 - 如何设置包含“路径”? (符号链接?)

时间:2012-10-05 13:39:36

标签: c windows-7 makefile cygwin mingw

我一直在尝试使用Cygwin和MinGW在Windows 7中安装/编译C库。但是,我在make期间收到了类似的错误:

sys/resource.h: No such file or directory
sys/times.h: No such file or directory

我之前认为这可能是特定库的问题,并在此处询问:Various issues installing igraph in Visual Studio 2010 and Cygwin/MinGW ("sys/time.h not found"),但在遇到与不同库相同的错误后,我认为问题出在我的最后。

尝试

cygwin/usr/include/sys/times.hcygwin/usr/include/sys/resource.h存在。在获得有关符号链接的建议后,我使用了ln -s /usr/include/sys sys来确保sys/times.h有效。

我去查看特定库(igraph)的make输出。它说它进入了一个“src”文件夹。所以,我去了src文件夹并做了同样的事情:ln -s /usr/include/sys sys并确保sys/times.h也在src文件夹中工作。

然而,我仍然得到:

fatal error: sys/times.h: No such file or directory

问题

如何设置make的“路径”以查找'sys / times.h'或/ usr / include / sys文件夹中的其他文件?我在这里缺少什么?

P.S。

请耐心等待我,因为我通常是Windows用户,不熟悉Linux术语。

4 个答案:

答案 0 :(得分:4)

经过多次调查,问题结果是:

  1. MinGW没有sys / times.h。
  2. Cygwin有它,但是我的Cyqwin在我的python中使用了gcc 目录,这是MinGW的gcc。
  3. 这是在尝试解决另一个问题时发现的:

    Cannot compile C code with #include <sys/times.h> in Cygwin

    事实证明,我的问题与包含路径或制作符号链接无关,而是gcc版本/类型错误。这个事实让我望而却步,因为我正在运行一个干净的Cygwin安装,并且不知道它会自动在我的Python文件夹中使用MinGW的gcc。

答案 1 :(得分:1)

http://mail.kde.org/pipermail/kde-windows/2006-May/000194.html 正如他们所说的那样,即使把时间放在那里,mingw也可能无法实现其功能

运行时./configure我得到了这个(很难注意到) http://i49.tinypic.com/2q80pzk.png

所以首先尝试复制times.h,然后使用./configure并查看是否存在此错误

答案 2 :(得分:0)

使用minGW构建libigraph而不使用“sys / times.h”

这可能对所有建筑物“igraph”都很有趣,并且不想用“cygwin”创建它,而是用“mingw”创建它。

在我的“msys / mingw”环境中,我的“源代码”在。“C:\ msys \ 1.0 \ src”目录中。
igraph目录。 == C:\ msys \ 1.0 \ src \ igraph-0.6

  • 运行c:\ msys \ 1.0 \ msys.bat
  • cd到顶级根 cd /
  • cd to igraph cd usr / src / igraph-0.6
    注意: C:\ msys \ 1.0 \ 中没有 usr 文件夹。小心不要创建 usr 文件夹!!!
  • 键入 ./ configure 现在msys shell看起来像

管理员@drserver -p /usr/src/igraph-0.6
$ ./configure

  • 点击“Enter”

需要一段时间。

更改文件。

  • 转到igraph-0.6 \ src
  • 使用Notepadd ++或其他编辑器打开“Makefile”
    转到第832行或搜索 libf2c_la_CFLAGS =
    libf2c_la_CFLAGS = 之后加上 -DUSE_CLOCK 现在它看起来像 libf2c_la_CFLAGS = -DUSE_CLOCK -DSkip_f2c_Undefs ....
  • 打开 igraph-0.6 \ src \ f2c \ uninit.c
  • 转到第182行或搜索 _control87(EM_DENORMAL
    评论此行 / * _control87(EM_DENORMAL ..... * /
  • 打开 igraph-0.6 \ src \ f2c \ s_paus.c
    转到第84行或搜索暂停();
    评论此行 / * pause(); * /

  • 输入 make 现在msys shell看起来像

管理员@drserver -p /usr/src/igraph-0.6
$ make

  • 点击“Enter”

如果有效则大约需要1小时!

答案 3 :(得分:0)

您应该检查您的makefile,对于Windows CFLAGS / CPPFLAGS具有-DWIN32 -D_WINDOWS。 换句话说,您永远不要访问Windows上的sys / times代码分支。