14

我正在尝试在我的 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 脚本时遇到问题,就像这里描述的问题: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 位数字。

4

5 回答 5

11

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

'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 版本的组件,可能会出现此错误...

于 2012-10-18T13:07:07.993 回答
6

对于使用其他二进制文件(如 ssh)时遇到此问题的人的一点说明。我有这个错误,因为 cygwin 试图运行 windows ssh 客户端而不是 cygwin 中的版本

于 2014-05-07T09:44:28.303 回答
1

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

尝试从 cygwin中启动Msys可执行文件时出现此错误。Msys 是另一个 'linux on windows' 环境,与 cygwin 不兼容。

具体来说,我试图通过 /bin 路径中的符号链接为 Windows 启动 Git 。我显然在很久以前就安装了它并创建了符号链接,直到我尝试使用git gui它然后抛出couldn't make stderr distinct from stdout错误才发现任何问题。有趣的是,许多 git 命令正常工作,或者静默失败,因此不会立即引起注意。

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

要修复它,请下载问题应用程序的 cygwin 版本,并删除您现有的任何指向 Windows 版本的符号链接。

对于 Git 案例:

  • 我删除了 /bin/git 符号链接
  • 重新运行 cygwin setup 并安装了 git(cygwin 版本)
于 2015-02-10T00:31:54.360 回答
0

帮助了我:

请尝试使用 Cygwin 1.7 beta 测试版:

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

Windows 7 并不真正支持 Cygwin 1.5.25。只有 Cygwin 1.7 对其进行了测试。

于 2012-08-10T10:32:28.787 回答
0

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

于 2013-12-13T03:23:22.043 回答