我想让我的c++项目跨平台,我正在考虑使用Cygwin/MinGW。 但是它们之间有什么区别呢?
另一个问题是,我是否能够在没有Cygwin/MinGW的系统上运行二进制文件?
我想让我的c++项目跨平台,我正在考虑使用Cygwin/MinGW。 但是它们之间有什么区别呢?
另一个问题是,我是否能够在没有Cygwin/MinGW的系统上运行二进制文件?
当前回答
Cygwin使用兼容层,而MinGW是本地的。这是主要的区别之一。
其他回答
Cygwin模拟整个POSIX环境,而MinGW是仅用于编译的最小工具集(编译本地Win应用程序)。所以,如果你想让你的项目跨平台,MinGW显然是两个选择之一。
尽管你可能会考虑在Windows上使用VS,在Linux/ unix上使用GCC。大多数开源项目都这样做(例如Firefox或Python)。
其他答案已经击中了目标。我只是想增加一个快速捕捉的例子。
Cygwin使用一个DLL, Cygwin . DLL,(或者可能是一组DLL)在Windows上提供类似posix的运行时。
MinGW编译为本地Win32应用程序。
如果您使用Cygwin构建某个东西,那么您安装它的任何系统也将需要Cygwin DLL。MinGW应用程序不需要任何特殊的运行时。
Cygwin使用兼容层,而MinGW是本地的。这是主要的区别之一。
不要忽视AT&T的U/Win软件,该软件旨在帮助您在windows上编译Unix应用程序(最新版本- 2012-08-06;使用Eclipse公共许可证,版本1.0)。
像Cygwin一样,他们必须与图书馆赛跑;在它们的情况下是POSIX.DLL。AT&T的人都是很棒的工程师(同样的团队给你带来了ksh和dot),他们的东西值得一看。