MinGW
MinGW (Minimalist GNU for Windows) on GCC-kääntäjän Windows-versio. MinGW on lähinnä C/C++-kääntäjä perustyökaluineen ja Windows Api-otsikkotiedostot ja tuontikirjastot.
Koska MinGW on komentorivipohjainen, se esiintyy useimmiten yhdessä ikkunoidun kehitysympäristön, CodeBlocksin, Orwell Dev-C++:n, Qt:n kanssa.
MinGW on ilmainen myös kaupalliseen käyttöön, mutta ilman takuita[1]. MinGWin otsikkotiedostot ovat public domainia ja kääntäjä työkaluineen GPL-lisensoitua. MinGWin mukana tulee GNU:n C, C++ ja Fortran.
MinGW ei ole edelleenkään yhtä suosittu, helppokäyttöinen ja tehokas kuin Microsoftin Visual C++-kääntäjä, mutta sen valttina on ilmaisuus ja kuuluminen yleisesti käytettyyn GCC-perheeseen, ja siksi se on jossain määrin yleistynyt 2000-luvulla.
Vaikka MinGW on GCC-kääntäjä, sen perusrajapinta on Windowsin API, ei POSIX[2].
Käyttöliittymiä ja lisäosia
MinGW-kääntäjän uuusimman version sai vuonna 2013 binaarina sekä 32-bittiselle että 64-bittiselle Windowsille.
MinGWissä ei ole oletuksena visuaalista käyttöliittymää, mutta esimerkiksi CodeBlocksin laajemman jakeluversion mukana tulee suoraan TDM GCC MinGW.
Myös Orwell DevC++[3] käyttää TDM GCC MinGW-kääntäjää. Kaiken lisäksi tunnettu C++:stä edelleen kehitetty ohjelmointiympäristö Qt käyttää MinGW:tä[4].
Kuzya on todella pieni, keskeneräinen kokeellinen kehitysympäristö, joka tukee MinGW:iä[5].
MinGWin kanssa kannattaa usein käyttää mm. Codeblocksia, MSYS:ää ja msysDTK:ta. Mingwin asennus ei muuta tietokoneen rekisteriä. Mingw on huomattavasti helpompi asentaa kuin Cygwin.
Vertailu Cygwiniin ja Visual C:hen
MinGWin vuodesta 1998 alkaen julkaistut ensimmäiset versiot jotka kulkivat nimellä mingw32 on kehitetty Cygwinin varhaisesta versiosta, mutta tosin kuin POSIX-pohjainen Cygwin, 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 esim 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. MinGW teettää myös käyttäjällään monesti enemmän työtä kuin Visual C++ mm 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 Mingwin perusongelma on se, että se on osaksi Unixin tyylinen GCC, osaksi Windowsille sovitetu kääntäjä, jolloin molempien ominaisuuksia on menetetty.
Koska Mingwin peruskirjasto on MSVCRT, se ei ole täysin yhteensopiva GCC:n C98:n ja C99:n kanssa. Osin tätä ongelmaa on koetetu ratkaista kehittämällä libmingwex-kirjasto, mutta tämäkään ei tuo täyttä yhteensopivuutta.
TDM ja muita kehitelmiä
Koska MinGW:n versionumero muuttuu gcc:n version mukana, MinGW:stä on monia bittisyyksiä. MinGWistä on monia epävirallisia "distroja" esim CodeBlocksinkin mukana tukeva TDM-GCC[6], joka on vastoin varsinaista Mingwiä myös 64-bittinen, jonka vuoksi usien käytetty. TDM-GCC:stä suositellaan yleensä käyttämään niin sanottua SJLJ-pakettia DW2-paketin sijaan, jos ei ole tarkempia vaatimuksia[7].
On myös MinGW distro nuwen.net[8], Win32 Devkit[9] ja RubenV[10].
Katso myös
Aiheesta muualla
- Codeblocks Downloads NOTE: The codeblocks-12.11mingw-setup.exe file includes the GCC compiler and GDB debugger from TDM-GCC (version 4.7.1, 32 bit).
- Minimalist GNU for Windows Official
- [3] MinGW MSYS
- [4] MinGW MSYS DTK
- MinGW w64 MinGW:n w64-haara
- MinGW SourceForge
- [5] MSYS SourceForge
- [6] MsysDTk SourceForge
Viitteet
- ↑ Copyright (c) 2012 MinGW.org project
- ↑ [http://www.mingw.org/ Welcome to MinGW.org Home of the MinGW and MSYS Projects]
- ↑ Orwell Dev-C++
- ↑ Qt Project MinGW
- ↑ [http://sourceforge.net/projects/kuzya/ kuzya ]
- ↑ TDM-GCC
- ↑ [1]
- ↑ MinGW Distro - nuwen.net
- ↑ Win32 DevKit
- ↑ [2]