MinGW

Kohteesta Wikipedia
Siirry navigaatioon Siirry hakuun

MinGW (Minimalist GNU for Windows) on GCC-kääntäjän ja sen ympäristön 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. Lisäksi 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 kanssa 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-lisensoitua.

Vaikka MinGW on GCC-kääntäjä, sen perusrajapinta on Windowsin API, ei POSIX[4].

Historia[muokkaa | muokkaa wikitekstiä]

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 epäiltiin siinä olevan käytetty suljettuja (ei-julkisia) tietolähteitä.[7]

Käyttöliittymiä[muokkaa | muokkaa wikitekstiä]

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ä.

Vertailu Cygwiniin ja Visual C:hen[muokkaa | muokkaa wikitekstiä]

MinGW:n vuodesta 1998 alkaen julkaistut ensimmäiset versiot jotka kulkivat nimellä mingw32 on kehitetty Cygwinin varhaisesta versiosta, mutta toisin 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.lähde? 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 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.

TDM ja muita kehitelmiä[muokkaa | muokkaa wikitekstiä]

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].

Katso myös[muokkaa | muokkaa wikitekstiä]

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. MinGW C++ Download and Installation ics.uci.edu. Viitattu 3.7.2019. (englanniksi)
  2. Minimalist GNU for Windows mingw.org. Viitattu 3.7.2019. (englanniksi)
  3. Copyright (c) 2012 MinGW.org project
  4. Welcome to MinGW.org Home of the MinGW and MSYS Projects
  5. a b c Project of the Month, September 2005 sourceforge.net. 31.8.2005. Viitattu 5.7.2019. (englanniksi)
  6. Richard Stallman: [Libtool Re: Naming a project gnu-win32?] lists.gnu.org. 18.9.2000. Viitattu 5.7.2019. (englanniksi)
  7. a b MinGW-w64 - for 32 and 64 bit Windows sourceforge.net. Viitattu 5.7.2019. (englanniksi)
  8. Orwell Dev-C++
  9. Qt Project MinGW
  10. [1] Kuzya
  11. TDM-GCC
  12. [2]
  13. MinGW Distro - nuwen.net
  14. Win32 DevKit
  15. [3]