分类1

软件教程

Cygwin (64-bit)和MinGW之间有什么区别?

来源:网络整理   日期:2016-08-01 12:45:30

编程的小伙伴都知道MinGW中的MSYS,同样是模拟unix环境。Cygwinu和MSYS到底有什么区别,又有哪些优势劣势呢?

Cygwin (64-bit)和MinGW之间有什么区别?

软件推荐:Cygwin下载(电脑版)

补充一下,因为cygwin是虚拟了一个linux环境(cygwin.dll),运行时都需要这个中间模块,所以运行起来会慢一些。如果仅仅是学习和一般使用,这种慢很难察觉。但是如果是为了科学计算,差别会明显。(cygwin下30s,mingw下运行只需6s)另外,cygwin下也有mingw的实现版本。 推荐使用这种方式来使用mingw。

1、从目标上说MinGW 是让Windows 用户可以用上GNU 工具,比如GCC。Cygwin 提供完整的类Unix 环境,Windows 用户不仅可以使用GNU 工具,理论上Linux 上的程序只要用Cygwin 重新编译,就可以在Windows 上运行。2、从能力上说如果程序只用到C/C++ 标准库,可以用MinGW 或Cygwin 编译。如果程序还用到了POSIX API,则只能用Cygwin 编译。3、从依赖上说程序经MinGW 编译后可以直接在Windows 上面运行。程序经Cygwin 编译后运行,需要依赖安装时附带的cygwin1.dll。

Cygwin是用一个dll模拟linux环境来“欺骗”应用程序,好像自己运行在linux环境下;而mingw是在编译时提供linux到windows必要代码的“翻译”转换,用到的还是windows运行时库。在cygwin下编译出来的程序需要cygwin.dll才能在windows下运行,源码拿到linux环境下重新编译就可以在linux下跑起来;mingw环境下编译出来的程序,只能在windows下跑,源码在linux环境下编译多半通不过。这是我粗浅的了解,欢迎纠正。

mingw是原生模拟,cygwin是全部模拟,和swt/swing的区别差不多。

以上是小编为大家整理的区别和优劣点,希望能帮助到大家?