2009-08-17 16 views
12

MSYS e sistemi di compilazione simili a UNIX; perché esiste il Mingw? Quello che voglio dire è, perché Win32/64 non è solo un altro obiettivo disponibile in "Vanilla GCC"? Ci sono motivi tecnici per questo o sono "politici"? Sembrerebbe che non ci sia nulla di speciale nella piattaforma Windows che possa rendere una porta GCC "incompatibile" con il GCC originale.Perché esiste il Mingw?

+0

Che domanda molto esista. Forse è per questo che tutti quei filosofi che cenano sono sempre in giro. – NoMoreZealots

risposta

7

Mingw non sono solo i compilatori, ma anche le librerie e le intestazioni (e qualsiasi altro file di supporto che potrebbe essere necessario).

GCC è solo un compilatore. Mingw è un ambiente completo.

+1

GCC è una raccolta di compilatori. – PetrosB

+5

Vero, ma il punto rimane ancora. –

+0

Questo significa che ho potuto scaricare il sorgente di GCC, compilo un compilatore mira Win32/64 e compilare il codice con esso (tranne che non ci sono librerie e header)? –

2

beh, anche se è possibile utilizzare il cross-compilatore per produrre codici binari win32/64 da GCC, qualcuno deve comunque trasferire tutte le librerie di runtime C. Sia Mingw che Cygwin sono creati per questo scopo.

3

MingW ha lo scopo di consentire un facile porting delle app Posix a Windows. È semplicemente uno strato "più sottile" rispetto a CygWin, quindi non tutto potrebbe funzionare dove Windows è troppo diverso. CygWin consente di fornire abbastanza isolamento che anche gli strumenti di scripting per creare e generare il codice di esecuzione.

Modifica: Microsoft è molto appassionato di fare i propri standard e vuole mettere il proprio marchio su cose per le quali esistono già standard aperti. Ad esempio OpenGL -> DirectX, Java -> .net, OpenCL è lo standard successivo che vogliono respingere. Ciò li rende un po 'dolorosi per il progetto non sponsorizzato di supportarli come target. Hanno sempre voltato le spalle a tutto ciò che consente un facile sviluppo multipiattaforma, perché vogliono solo che tu sviluppi la tua app per quel SO. È una strategia di marketing, controlla il marchio, controlla la piattaforma e rende doloroso per le persone supportare altri sistemi operativi. MingW è richiesto perché GCC può generare codice x86, ma anche il supporto di base più runtime è diverso dai sistemi operativi basati su Posix.

+0

-1: Ranting .... –

0

Dal sito principale di MinGW

Disponibile in formato pacchetto binario di facile installazione, per la distribuzione nativa su MS-Windows o user-installato dal codice sorgente, per l'utilizzo cross-ospitato su Unix o GNU/Linux, il suite sfrutta le DLL di sistema standard di Microsoft per fornire C-Runtime e API Windows.