所以我正在尝试运行我用C语言编写的第一个hello world prog.我在eclipse中编译它并且没有错误,但是当我尝试运行它时,我得到:
"此应用程序无法启动,因为找不到cygwin1.dll."
我发现这篇文章似乎表明我应该将它添加到Windows PATH,我用它来做到这一点.所以现在我的环境变量中的"Path"已经附加了"; C:\ cygwin\bin\cygwin1.dll".仍然没有工作.任何人都知道我可能做错了什么?我的"程序"看起来像这样:
#includemain() { printf("hello, world\n"); }
Adam Rosenfi.. 17
PATH环境变量需要包含包含cygwin1.dll的目录,而不是cygwin1.dll本身的路径.所以只需确保PATH中包含字符串"C:\cygwin\bin"
.
PATH环境变量需要包含包含cygwin1.dll的目录,而不是cygwin1.dll本身的路径.所以只需确保PATH中包含字符串"C:\cygwin\bin"
.
顺便说一句,我恳请你不要盲目地将包含cygwin1.dll的目录添加到系统PATH中.顺序搜索路径.如果你碰巧在路径中有较旧或较新版本的Cygwin运行时,那么与cygwin1.dll相关联的其他程序可能会崩溃(除非你知道你正在寻找不同的DLL版本,否则解决发生的事情并非易事. .)
你应该做的是将cygwin1.dll(以及你的程序可能需要的其他Cygwin DLL)复制到保存二进制文件的目录中,然后创建一个空的(零字节长度)文件,其名称与你的可执行文件相同但.local
附加,即if您的可执行文件是mytest.exe
,您创建一个名为的文件mytest.exe.local
.这将告诉PE加载器首先在保存二进制文件的同一目录中查找所需的DLL,从而避免以后遇到很多麻烦.