运行Cygwin命令时“无法使stderr与stdout不同”

时间:2012-08-08 15:30:09

标签: 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 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 line-endings选项(对于某些遗留代码兼容性)。

修复行结尾的另一个问题(bash遇到麻烦处理/ cygdrive / c / cygwin-legacy / bin / vmake脚本,如此处所述的问题:http://chess.eecs.berkeley.edu/softdevel/faq/5.html)我已将这些问题添加到〜/ .bash_profile :

export SHELLOPTS
set -o igncr

阅读http://lists-archives.com/cygwin/50369-run-requires-cygwin-tty.html后,我也设置了:

$ CYGWIN=tty

这没有改变。我还在接受

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

每次都有不同的4位数字。

5 个答案:

答案 0 :(得分:11)

我在这里遇到了同样的问题。 然后我记得,我们取代了“make”命令 一个MSYS版本(因为新的'make') cygwin包没有用冒号处理任何pathes(“:”) - >这会导致“多个目标”错误。

替换'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版本的组件,可能会发生此错误......

答案 1 :(得分:6)

对于像ssh这样的其他二进制文件有此问题的人的一点注意事项。我有这个错误,因为cygwin试图运行Windows ssh客户端而不是cygwin中的版本

答案 2 :(得分:1)

检查可执行文件是否为cygwin版本

尝试从cygwin中启动Msys可执行文件时出现此错误。 Msys是Windows上的另一个Linux'环境与cygwin不相容。

具体来说,我试图通过/ bin路径中的符号链接启动Git for Windows。我显然已经在很久以前安装了它并创建了符号链接,并且在我尝试使用git gui然后抛出couldn't make stderr distinct from stdout错误之前没有注意到任何问题。有趣的是,许多git命令可以工作,或者无声地失败,因此它不会立即显示出来。

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

要解决此问题,请下载问题应用的cygwin版本,并删除指向Windows版本的所有符号链接。

对于Git案例:

  • 我删除了/ bin / git symlink
  • 重新运行cygwin设置并安装git(cygwin版本)

答案 3 :(得分:0)

This帮助了我:

  

尝试使用Cygwin 1.7 beta测试版:

     

http://cygwin.com/#beta-test

     

Windows 7不支持Cygwin 1.5.25。只有Cygwin 1.7   接受测试。

答案 4 :(得分:0)

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