2009-08-17 19 views
12

MSYS y sistemas de compilación de tipo UNIX aparte; ¿Por qué existe Mingw? Lo que quiero decir es, ¿por qué win32/64 no es solo otro objetivo disponible en "GCC vainilla"? ¿Hay razones técnicas para esto o son "políticas"? Me parece que no hay nada especial en la plataforma Windows que haga que un puerto GCC sea "incompatible" con el GCC original.¿Por qué existe Mingw?

+0

¡Qué pregunta tan especial! Tal vez es por eso que todos esos filósofos gastronómicos siempre están dando vueltas. – NoMoreZealots

Respuesta

7

Mingw no son solo los compiladores, sino también las bibliotecas y los encabezados (y cualquier otro archivo de soporte que pueda necesitar).

GCC es solo un compilador. Mingw es un ambiente completo.

+1

GCC es una colección de compiladores. – PetrosB

+5

Cierto, pero el punto aún persiste. –

+0

¿Eso significa que puedo descargar el código fuente de GCC, compilar un compilador dirigido a win32/64 y compilar el código con él (excepto que no hay bibliotecas y encabezados)? –

2

bueno, aunque puede usar el compilador cruzado para producir códigos binarios win32/64 de GCC, alguien tiene que portar todas las bibliotecas de C en tiempo de ejecución. Tanto Mingw como Cygwin se crearon para este propósito.

3

MingW está diseñado para permitir la fácil transferencia de aplicaciones de Posix a Windows. Es simplemente una capa "más delgada" que CygWin, por lo que no todo podría funcionar donde las ventanas son demasiado diferentes. CygWin permite proporcionar suficiente aislamiento que incluso las herramientas de creación de scripts para generar y generar código ejecutan.

Editar: Microsoft es muy aficionado a hacer sus propios estándares, y quiere poner su propia marca en cosas para las que ya existen estándares abiertos. es decir, OpenGL -> DirectX, Java -> .net, OpenCL es el próximo estándar que quieren despreciar. Esto los hace un poco dolorosos para el proyecto no patrocinado para apoyarlos como un objetivo. Siempre se han alejado de cualquier cosa que permita un fácil desarrollo de plataforma cruzada, porque solo quieren que desarrolles tu aplicación para ese sistema operativo. Es una estrategia de marketing, controla la marca, controla la plataforma y dificulta que las personas admitan otros sistemas operativos. Se requiere MingW porque GCC puede generar código x86, pero incluso el soporte de tiempo de ejecución más básico es diferente de los sistemas operativos basados ​​en Posix.

+0

-1: Ranting .... –

0

Desde el sitio principal de MinGW

Presentado en formato de paquetes binarios de fácil instalación, para la implementación nativa en MS-Windows o usuario-construido a partir de la fuente, para su uso en cruz alojado en Unix o GNU/Linux, el suite explota las DLL de sistema estándar de Microsoft para proporcionar el C-Runtime y la API de Windows.