不同的Microsoft Windows编译环境所引起的差异
版本的选择
若您精通UNIX且迷恋CUI的话,请安装Cygwin后自己编译Cygwin版。若非如此的话,我们向您推荐mswin32版和mingw版。后者中两个版本的区别仅仅是编译环境不同而已,若使用二进制的话,则没有什么不同(但php?name=Ruby" onclick="tagshow(event)" class="t_tag">Ruby1.6中稍有不同,后文详述)。若您经常使用COM (Component Object Model)的话,还可以考虑使用ActiveScriptphp?name=Ruby" onclick="tagshow(event)" class="t_tag">Ruby。
各自的特征
mswin32
用Microsoft的Visual C++编译而成的ruby。它与Windows环境的亲合度最高,非常稳定。使用它时,不需要别的文件。另外,ActiveScriptRuby也是基于mswin32版的。
当然了,您不能使用fork、pty或termcap等UNIX所特有的功能。
Mingw (Minimalist GNU for Windows)
Mingw是指,使用gcc来编译Windows native的程序的环境。从ruby 1.5.4 (2000-05-14)版起得到支持。
因为它使用msvcrt.dll,所以同mswin32版之间保持着二进制兼容性。但在Ruby 1.6以前,因为Ruby DLL名称不同,不能互相兼容。这个问题在Ruby 1.8以后的版本中得到修正。
与mswin32版一样,它也不能使用fork()、pty或termcap等UNIX所特有的功能。
为了使用configure,必须得有sh和sed才行。因此,若您自己编译mingw ruby时,必须有Cygwin才行。
Cygwin
Cygwin是Windows上的POSIX环境模拟层。由Cygnus solutions开发完成。它可以使用UNIX的大部分功能。
使用Cygwin版Ruby时,除了需要Ruby之外,还必须有Cygwin DLL (cygwin1.dll)。另外,若想充分利用Cygwin版的功能的话,还必须掌握Cygwin的知识才行。
有一段时期,它的稳定性并不太好。但最近的Cygwin DLL相对比较稳定。若您在Windows NT系列上尽可能使用新版本的DLL的话,则应该可以解决稳定性差的问题。