Me pregunto en qué situaciones se usa Cygwin para compilar código C y cuándo se optaría por MinGW. Vine por What is the difference between Cygwin and MinGW? describiendo las diferencias entre Cygwin y MinGW.Cuándo usar Cygwin o MinGW para compilar el código C?
Por lo que he entendido, se podría decir lo siguiente:
- Cygwin: Permite compilar el código fuente en C para los sistemas operativos compatibles con POSIX para funcionar en Windows (requiere cygwin1.dll). Por ejemplo, pude compilar una aplicación usando la API pthreads para Windows, aunque Windows no implementa la API.
- MinGW: permite compilar el código fuente C compatible con Windows. Entonces, usando el ejemplo de arriba, no pude usar la API pthreads al compilar con gcc en MinGW pero sería necesario usar la API de subprocesos ofrecida por Windows. En lugar de usar el compilador MinGW gcc, también podría estar usando un compilador diferente, p. el que viene con VC++.
Sin embargo, mi comprensión parece ser incorrecta, porque pude compilar un programa ficticio que incluía pthread.h con MinGW. ¿Qué entendí mal?
Supongo que este puerto win32 pthreads está incluido en MinGW? – simon
@simon: no solía ser, pero aparentemente es un paquete base MinGW desde 2010-02-18 (ver http://sourceforge.net/projects/mingw/files/MinGW/Base/pthreads-w32/) – Christoph
@Christoph Cygwin no impone un diseño de memoria DLL fijo como tal, pero sí necesita cargar archivos DLL en un proceso bifurcado en las mismas direcciones que el elemento primario. – ak2