不同的Microsoft Windows编译环境所引起的差异

发表于:2007-07-04来源:作者:点击数: 标签:
版本的选择 若您精通 UNIX 且迷恋CUI的话,请安装Cygwin后自己编译Cygwin版。若非如此的话,我们向您推荐mswin32版和mingw版。后者中两个版本的区别仅仅是编译环境不同而已,若使用二进制的话,则没有什么不同(但 Ruby 1.6中稍有不同,后文详述)。若您经常使
版本的选择

若您精通UNIX且迷恋CUI的话,请安装Cygwin后自己编译Cygwin版。若非如此的话,我们向您推荐mswin32版和mingw版。后者中两个版本的区别仅仅是编译环境不同而已,若使用二进制的话,则没有什么不同(但Ruby1.6中稍有不同,后文详述)。若您经常使用COM (Component Object Model)的话,还可以考虑使用ActiveScriptRuby。

各自的特征 mswin32

用Microsoft的Visual C++编译而成的ruby。它与Windows环境的亲合度最高,非常稳定。使用它时,不需要别的文件。另外,ActiveScriptRuby也是基于mswin32版的。

当然了,您不能使用fork、pty或termcap等UNIX所特有的功能。

Mingw (Minimalist GNU for Windows)

Mingw是指,使用gclearcase/" target="_blank" >cc来编译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的话,则应该可以解决稳定性差的问题。

原文转自:http://www.ltesting.net