Mingw

MinGW (Minimalist Gnu for Windows) este o colectia gratuita de librarii imbogatind GNU Compliler Collection cu fisiere si librarii specifice Windows. Scopul proiectului initial a fost integrarea facilitatilor oferite de Windows32 in compilatorul gcc si binutils, practic portarea acestora pe Windows. Mare parte din codul MinGW este distribuit sub licenta GPL, insa nu in intregime, detalii gasiti aici.

Comparatie intre MinGW GCC si GNU GCC

Asemanari

  • Uneltele MinGW pot fi folosite de sine statatoare, asemanator cu uneltele echivalente din Linux. Asadar putem compila si depana (cu ajutorul MinGW gcc/g++ si gdb) orice sursa C/C++ care poate fi scrisa cu un editor de texte. Exista mai multe editoare cu syntax highlighting pentru windows: notepad++, vim, jedit.

Deosebiri

  • Pentru a citi/afisa numere pe 64 de biti cu libraria <stdio.h> se foloseste specificatorul de format non-standard "%I64d". Cateva detalii aici.

IDE-uri pentru MinGW

Un IDE (Integrated Development Enviroment) contine:

  • editor performant (syntax highlighting, code completion)
  • debugger
  • utilitar pentru linkarea surselor si librariilor

Exemple de IDE pentru MinGW: Dev-cpp, MinGW Developer Studio, Code::Blocks (pe site-ul MinGW este recomandat Code::Blocks ca IDE).

MinGW Developer Studio

[site-ul nu mai merge de vreo 3 saptamani, arhiva e momentan pe infoarena, o voi pune ulterior la downloads, numai sa mearga pusa intreaga si nu pe parti]

Avantaje

  • Simplu de instalat si folosit
  • Ultima versiunea (2.0.5) vine in mod normal cu MinGW gcc 3.3.1, insa acesta poate fi inlocuit daca utilizatorul doreste acest lucru
  • Este freeware (Poate fi folosit gratuit in scopuri non-comerciale dar nu avem acces la surse. Pe viitor putem contacta autorul programului si cere accesul la surse.)
  • Editorul este foarte bun, are si hints pentru functiile din librariile standard
  • Este stabil in general, fiind putine cazurile cand crapa
  • Debugger-ul este unu relativ solid

Dezavantaje

  • Ultima versiune aparuta dateaza din ianuarie 2005, si reprezinta versiune 2.0.5 a produsului. Asadar, software-ul nu mai este in dezvoltare activa.
  • Utilizatorul trebuie sa creeze proiect ca sa poate compila/depana o sursa. Totusi, proiectele create sunt minimaliste (comparativ cu Visual C++ spre exemplu) si nu sunt foarte greu de folosit.

Code::Blocks

Un IDE mai complicat, insa este mai complicat doar pentru ca ofera mai multe unelte. Ruleaza sursele fara proiect insa pentru a face debug trebuie creat un proiect si sursa trebuie importata in acesta. Debuggerul este insa unul puternic. Watchul permite evaluarea variabilelor, dar si a functiilor. De asemeni se pot observa si apelurile functiilor pe stiva sistem.

Avantaje

  • Este un proiect aflat in development
  • dan: Din 2008 (de 2 ani la acest moment), nu a mai aparut vreo versiune noua si niciun post pe site. Se dezvolta ceva in SVN, dar nu pare sa se anunte vreun release nou prea curand (opinie).
  • Este usor de instalat si contine multe feature-uri
  • Editorul este foarte bun, are hints pentru functiile si obiectele (vector, deque etc) din librariile standard, dar nu ofera hints pentru clasele create de user [TODO: de testat daca mingw studio face asta]

Dezavantaje

  • Are nevoie de un proiect pentru debug
  • Nu pare un produs bine pus la punct si bine finalizat. (doar un feeling nu e un argument)
  • bogdan: mi-a crapat pe windows de vreo 2 ori cand faceam proiecte fara sa inteleg de ce (nu prea pot reproduce).
  • bogdan: mi se pare prea complicat de folosit si deloc intuitiv. am preferat sa bag printfuri decat sa incerc sa debughez.
  • silviu: am debugat eu cu el si nu e super complicat; totusi, nu e la fel de usable debugul ca in Visual Studio
  • silviu: impresia mea a fost una foarte buna dupa ce m-am jucat un pic cu el; intr-adevar, nu pare foarte bine pus la punct dar are cateva chestii super tari (scrieti "for" si apoi dati CTRL+J).

Bug: Am folosit Windowsul, si la un moment dat cand trebuia sa compileze, imi tot zice mingw32-g++.exe ca "No Disk": "There is no disk in the drive. Please insert a dist into drive D:" (unitate optiva). Si trebuie sa-i dau Cancel de cateva zeci de ori, stresant.

  • In privinta acestui bug exista o observatie si o solutie aici .

Dev-cpp

Avantaje

  • Simplu de instalat si folosit
  • Ultima versiunea (4.9.9.2) vine in mod normal cu MinGW gcc 3.4.2, insa acesta poate fi inlocuit daca utilizatorul doreste acest lucru.
  • Daca nu se creeaza nici un proiect, sursele sunt trimise automat intr-un proiect fictiv.

Dezavantaje

  • Editorul nu este grozav, necesitand setari speciale pentru a merge
  • Debuggerul crapa si este destul de greu de folosit [Silviu: Eu stiam ca e ca si cum n-ar fi acolo :)]
  • Ultima versiune aparuta dateaza din februarie 2005, si reprezinta versiune 4.9.9.2 a produsului. Asadar, software-ul nu mai este in dezvoltare activa.
  • Desi usor de folosit in prima faza, nu este foarte stabil.

Verdict

Acest IDE este de departe cea mai instabila solutie din cele 3 IDE posibile pentru MinGW. In plus, MinGW Developer Studio ii este net superior. Propunem ca acest IDE sa fie evitat in solutia de inlocuire a compilatoarelor Borland.