我想知道在什么情况下使用Cygwin来编译C代码,以及何时选择MinGW。我看到了描述Cygwin和MinGW之间区别的链接(What is the difference between Cygwin and MinGW?)。
据我所知,可以这样说:
- Cygwin:允许编译针对POSIX兼容操作系统的C源代码,以在Windows上运行(需要cygwin1.dll)。例如,我可以使用Windows的pthreads API编译应用程序,尽管Windows本身不实现该API。 - MinGW:允许编译符合Windows标准的C源代码。因此,使用上面的示例,在MinGW中使用gcc编译时无法使用pthreads API,而必须使用Windows提供的线程API。除了使用MinGW gcc编译器外,我还可以使用其他编译器,例如VC++自带的编译器。
然而,我的理解似乎是错误的,因为我能够使用MinGW编译包含pthread.h的虚拟程序。我哪里理解错了?
据我所知,可以这样说:
- Cygwin:允许编译针对POSIX兼容操作系统的C源代码,以在Windows上运行(需要cygwin1.dll)。例如,我可以使用Windows的pthreads API编译应用程序,尽管Windows本身不实现该API。 - MinGW:允许编译符合Windows标准的C源代码。因此,使用上面的示例,在MinGW中使用gcc编译时无法使用pthreads API,而必须使用Windows提供的线程API。除了使用MinGW gcc编译器外,我还可以使用其他编译器,例如VC++自带的编译器。
然而,我的理解似乎是错误的,因为我能够使用MinGW编译包含pthread.h的虚拟程序。我哪里理解错了?
rebaseall
... - Christoph