我一直在想,在cygwin里面编出的.exe文件为什么就能够在Windows下运行呢???
现在,我终于知道了:cygwin其实就是一种工具,它利用Windows的一些函数来实现Linux独有的API
。
这就要说说cygwin的解释了。
cygwin是一个在Windows平台下运行的Unix模拟环境,是cygnus solutions公司开发的自由软件。
他们写了一个共享库,也就是cygwin1.dll,把win32api中没有的Unix风格的调用封装在里面。
也就是说,他们基于win32api写了一个Unix系统库的模拟层。
这样,只要把这些工具的源代码和这个共享库连接在一起,就可以使用Unix主机上的交叉编译器来生成可以在Windows平台上运行的工具集。以这些移植到Windows平台上的开发工具为基础,cygnus又逐步把其他的工具软件移植到Windows上来。
我们也可以查看cygwin官网,上面写道:
cygwin 是:
提供在Windows上实现Linux类似功能的gnu和开源工具的庞大工具集。 一个DLL(cygwin1.dll)提供POSIX API功能的东西。
cygwin1.dll是系统文件,它是存放在windows系统文件夹中的重要文件,通常情况下是在安装操作系统过程中自动创建的,
对于系统正常运行来说至关重要。除非用户电脑被木马病毒、或者流氓软件篡改导致出现cygwin1.dll丢失,cygwin1.dll
缺失损坏等弹窗现象,否则不建议用户对该类文件cygwin1.dll进行随意的修改。
cygwin版本问题
我们可以在cygwin命令行使用命令 uname或者cygcheck --version来测试我们已经安装的版本。
如果我们要寻找整个cygwin的发行版本号,那么狠抱歉!
cygwin里面的每一个包都有自己的版本,并且这些包都在不断改进。
获取最新版本的cygwin的方法是在官网下载setup.exe,它将把最新的包下到你的系统上。