Tämän artikkelin tai sen osan kieliasua on pyydetty parannettavaksi. Voit auttaa Wikipediaa parantamalla artikkelin kieliasua. |
MinGW | |
---|---|
Luoja | Colin Peters |
Tiedot | |
Ohjelmistotyyppi | ohjelmointikielen kääntäjä |
Lisenssi | GPLv2 |
Aiheesta muualla | |
Verkkosivusto |
MinGW (Minimalist GNU for Windows) on GCC-kääntäjä ja sen ympäristö Windows-alustalle. MinGW sisältää varsinaisen kääntäjän lisäksi myös msys-ympäristön, jossa on muun muassa Bash-komentotulkki sekä GNU Binutils -ohjelmat.[1][2]
MinGW:n mukana tulee C-, C++-, Fortran- ja ADA-kääntäjät sekä Windows API:n kanssa yhteensopivat otsikkotiedostot ja tuontikirjastot. MinGW ei ole osa GCC-projektia, vaan on oma irrallinen projektinsa.
MinGW:tä voidaan käyttää sellaisenaan tai muun kehitysympäristön kuten CodeBlocksin, Orwell Dev-C++:n tai Qt:n kanssa.
MinGW on ilmainen myös kaupalliseen käyttöön, mutta ilman takuita[3]. MinGW:n otsikkotiedostot ovat public domainia ja kääntäjä työkaluineen GPL-lisensoituja.
Vaikka MinGW on GCC-kääntäjä, sen perusrajapinta on Windows API, ei POSIX[4]:n määrittämä.
Colin Peters aloitti projektin joukolla otsikkotiedostoja ja tuontikirjastolla.[5] Jan-Jaap van der Heijden halusi kääntää ohjelmia ilman riippuvuutta Cygwin-kirjastoon.[5] Cygwin-projektin käyttämä lisenssi Windows API:lle oli liian rajoittava ja Anders Norlander teki projektiin vaihtoehtoiset.[5]
Projektia kutsuttiin varhaisessa vaiheessa nimellä gnu-win32, joka ei ollut GNU-projektin nimeämiskäytännön mukainen.[6] MinGW-w64 oli vuonna 2005 aloitettu versio 64-bittiselle Windowsille, joka kehitettiin Objective C -kääntäjän siirtämiseksi.[7] OneVisionin tekemä puhtaan huoneen versio hylättiin aluksi, koska siinä epäiltiin olleen käytetty suljettuja (ei-julkisia) tietolähteitä.[7]
MinGW:tä voi käyttää suoraan komentoriviltä, mutta yleistä on käyttää sitä jonkin kehitysympäristön kautta. Esimerkkeinä tavallisimmista MinGW:tä tukevista kehitysympäristöistä ovat CodeBlocks, Orwell DevC++[8], Qt[9] sekä varsin kevyt Kuzya[10]. Näistä CodeBlocks ja Orwell DevC++ on saatavilla MinGW:n TDM GCC version kanssa ja Qt tavallisella MinGW:llä.
Tähän artikkeliin tai osioon ei ole merkitty lähteitä, joten tiedot kannattaa tarkistaa muista tietolähteistä. Voit auttaa Wikipediaa lisäämällä artikkeliin tarkistettavissa olevia lähteitä ja merkitsemällä ne ohjeen mukaan. |
MinGW:n vuodesta 1998 alkaen julkaistut ensimmäiset versiot, jotka kulkivat nimellä mingw32, on kehitetty Cygwinin varhaisesta versiosta, mutta toisin kuin POSIX-pohjainen Cygwin, se tukee suoria Windows API-kutsuja POSIX:in sijaan.
MinGW ei ole yhtä käytetty kääntäjä kuin Visual C++, mutta monissa tapauksissa senkin käyttöä voi kokeilla, koska ainakin muutamat ohjelmakirjastot tukevat sitä. MinGW on taatusti ilmainen kehitysalusta. MinGW:n käyttö saattaa olla paikallaan silloin, kun siirtää valmista koodia esimerkiksi Linuxista Windowsiin.
Muun muassa 3D-pelintekokirjasto Irrlicht kääntyy CodeBlocks+MinGW:llä. Myös Ogren saa käännettyä CMaken avulla CodeBlocks+MinGW:llä käännettävään muotoon. Ainakin teoriassa MinGW tukee monia ohjelmointikirjastoja, joita GCC yleisemmin tukee. Näitä ovat mm fonttikirjasto FreeType.
MinGW on Visual C:hen verrattuna hieman hitaampi kääntämään ja tuottaa yleensä hieman hitaampaa koodia.lähde? MinGW teettää myös käyttäjällään monesti enemmän työtä kuin Visual C++, koska siitä puuttuu useasti valmiita binaarikirjastoja. Tällöin MinGW voi olla pahimmassa tapauksessa käyttäjälleen todella painajaismaisen hidas työkalu verrattuna Visual C++:aan. Eräs MinGW:n perusongelma on se, että se on osaksi Unix-tyylinen GCC, osaksi Windowsille sovitettu kääntäjä, jolloin molempien ominaisuuksia on menetetty.
Koska MinGW:n käyttämä C-kirjasto on Microsoftin MSVCRT, se ei ole täysin yhteensopiva GCC:n C98:n ja C99:n kanssa. Osin tätä ongelmaa on koetettu ratkaista kehittämällä libmingwex-kirjasto, mutta tämäkään ei tuo täyttä yhteensopivuutta.
MinGW:n versionumero vastaa GCC:n versiota, mutta vastaava MinGW julkaistaan yleensä huomattavalla viiveellä. MinGW:stä on monia epävirallisia "distroja", kuten esimerkiksi CodeBlocksinkin mukana tukeva TDM-GCC[11], jolla voi varsinaisesta MinGW:stä poiketen kääntää myös 64-bittisiä sovelluksia ja kirjastoja. TDM-GCC:stä suositellaan yleensä käyttämään niin sanottua SJLJ-pakettia DW2-paketin sijaan, jos ei ole tarkempia vaatimuksia[12].
MinGW:stä on myös muita distroja, kuten nuwen.net[13], Win32 Devkit[14] ja RubenV[15].