Windows 7 &引用;不能';t使stderr不同于stdout“;运行Cygwin命令时

Windows 7 &引用;不能';t使stderr不同于stdout“;运行Cygwin命令时,windows-7,cygwin,stdout,stderr,Windows 7,Cygwin,Stdout,Stderr,我正在尝试在Windows 7 x64操作系统上安装一些旧版本的Cygwin。到现在为止,一直都还不错。现在我陷入了srdout/stderr区分问题: $ vmake 1 [main] make 7060 dtable::stdio_init: couldn't make stderr distinct from stdout $ ls / 1 [main] ls 8180 dtable::stdio_init: couldn't make stderr distinct from

我正在尝试在Windows 7 x64操作系统上安装一些旧版本的Cygwin。到现在为止,一直都还不错。现在我陷入了srdout/stderr区分问题:

$ vmake
  1 [main] make 7060 dtable::stdio_init: couldn't make stderr distinct from stdout

$ ls /
  1 [main] ls 8180 dtable::stdio_init: couldn't make stderr distinct from stdout
Cygwin.bat  Cygwin.ico  bin  cygdrive  etc  lib  proc  setup.log  setup.log.full  tmp  usr  var
我正在跑步:

$ uname -srv
  1 [main] uname 5876 dtable::stdio_init: couldn't make stderr distinct from stdout
CYGWIN_NT-6.1-WOW64 1.5.25(0.156/4/2) 2008-06-12 19:34
Cygwin安装选择了DOS行结束选项(为了某些遗留代码兼容性)

要解决另一个行结尾问题(bash在处理/cygdrive/c/cygwin legacy/bin/vmake脚本时遇到问题,如这里所述:),我已将这些添加到~/.bash_配置文件中:

export SHELLOPTS
set -o igncr
阅读后,我还设置:

$ CYGWIN=tty
这并没有改变什么。我还没有完全康复

1 [main] make 7060 dtable::stdio_init: couldn't make stderr distinct from stdout
每次使用不同的4位数字。

帮助我:

请尝试Cygwin 1.7测试版:

Windows 7并不真正支持Cygwin 1.5.25。仅Cygwin 1.7 测试一下


我这里也有同样的问题。 然后我想起,我们替换了“make”命令 通过MSYS版本(自“制造”新 cygwin包未处理任何带有冒号(“:”)的路径 ->这会导致“多目标”错误

“make”命令的替换解决了这个问题, 但导致“stdio_init:无法使stderr与stdout区分开来” 当我试图编译其他项目时

因此:

您的机器上是否也安装了MSYS/MinGW

试试这个:

make--version

它应该是这样的:

GNU Make 3.82.90
Built for i686-pc-cygwin
如果您得到类似于:

GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i686-pc-msys
你需要用cygwin'make'来代替


如果您混淆了不同cygwin版本的组件,则可能会发生此错误。

从我的路径中删除C:\DevKit\bin会使问题消失。

对于其他二进制文件(如ssh)有此问题的人,请注意。我遇到此错误是因为cygwin试图运行windows ssh客户端,而不是cygwin中的版本检查可执行文件是否为cygwin版本 我在尝试从cygwin中启动可执行文件时出错。Msys是另一个“windows上的linux”环境,与cygwin不兼容

具体来说,我试图通过/bin路径中的一个符号链接启动。很明显,我早就安装了它,然后创建了符号链接,直到我尝试使用
git gui
,然后抛出
时,才发现任何问题。有意思的是,许多git命令都无法工作,或者悄无声息地失败,因此无法立即察觉

当cygwin尝试启动用于Msys环境的程序时,它会抛出错误

若要修复此问题,请下载问题应用程序的cygwin版本,并删除所有指向Windows版本的符号链接

对于Git案例:

  • 我删除了/bin/git符号链接
  • 重新运行cygwin安装程序并安装git(cygwin版本)

有什么原因不能使用最新的cygwin吗?它/可能/修复它…显然,自1.5版以来,cygwin发生了一些重大变化,我们构建基础结构中的一些旧makefile与这些变化不兼容。很可能是cygwin版本在我的情况下混淆了。当我将驱动器上的所有cygwin内容移动到另一个di时rectory并从头开始安装了旧版cygwin。它再次起作用。您如何
使用cygwin'make'。
?@Robbo_UK-(我知道这是一个老问题,但仅供参考)您可以更改PATH变量,使Cygwin目录显示在具有
make
.Thanx!的任何其他目录之前!正是我遇到的问题:)我也是。你们找到解决办法了吗?一样。我出现这个错误是因为它试图使用Vagrant安装的
ssh
。我把Vagrant从Windows
路径中调出,使用Cygwin安装工具安装
openssh
(默认情况下未安装),它成功了。