运行用C编写的程序时“找不到Cygwin1.dll”。如何让Windows找到它?

所以我正在尝试运行我用C语言编写的第一个hello world编程。我在eclipse中编译它并且没有错误,但是当我尝试运行它时,我得到:

“此应用程序无法启动,因为找不到cygwin1.dll。”

我发现这篇文章似乎表明我应该将它添加到Windows PATH,我用它来做到这一点。 所以现在我的环境变量中的“Path”已经附加了“; C:\ cygwin \ bin \ cygwin1.dll”。 仍然没有工作。 任何人都知道我可能做错了什么? 我的“程序”看起来像这样:

#include  main() { printf("hello, world\n"); } 

PATH环境变量需要包含包含cygwin1.dll的目录,而不是cygwin1.dll本身的路径。 所以只需确保PATH中包含字符串"C:\cygwin\bin"

顺便说一下,我恳请你不要盲目地将包含cygwin1.dll的目录添加到系统PATH中。 顺序搜索路径。 如果你碰巧在路径中有较旧或较新版本的Cygwin运行时,那么与cygwin1.dll相关联的其他程序可能会崩溃(除非你知道你正在寻找不同的DLL版本,否则找出发生的事情并非易事。 。)

您应该做的是将cygwin1.dll(以及您的程序可能需要的其他Cygwin DLL)复制到保存二进制文件的目录中,然后创建一个空的(零字节长度)文件,其名称与您的可执行文件相同,但附加了.local ,即,如果您的可执行文件是mytest.exe ,则创建名为mytest.exe.local的文件。 这将告诉PE加载器首先在保存二进制文件的同一目录中查找所需的DLL,从而避免以后遇到很多麻烦。

我遇到了同样的问题…… Adam Rosenfield的回答很好解决了。 在我的电脑上,路径必须是"C:\cygwin64\bin"

我第一次没有认识到我的cygwin版本是64位……但是很清楚,路径变量中的这些微小差异决定了它是否可行 – 或者不行。