Maksuttomista C- ja C++-kääntäjistä PC:lle

PC-koneille on saatavissa varsin monia C-kääntäjiä, mutta tämä dokumentti keskittyy maksuttomiin vaihtoehtoihin, tarkemmin sanoen Gnu-projektin yhteydessä tehtyihin ohjelmiin. Kyseessä ovat Gnu-C:n eli gcc:n porttaukset PC-ympäristöön, ja ne ovat GNU Public Licencen alaisia.

Tarjolla ovat ainakin seuraavat vaihtoehdot:

DJGPP
Dos-tilassa toimiva
Cygwin (Cygnus)
periaatteessa Windows-pohjainen
MinGW
kertoo olevansa "Minimalist GNU For Windows"

Näistä tarkastellaan seuraavassa vain DJGPP:tä, eli ainoaa, jota olen vakavasti käyttänyt.

Muista vaihtoehdoista mainitsen Jacob Navian LCC-Win32:n. Pikaisen tutustumisen perusteella se vaikuttaa kiinnostavalta ja helppokäyttöiseltä. (Imuroi .exe tiedosto sopivaan hakemistoon, aja se suorittaaksesi asennuksen, ja kokeile sitten: Ohjelma käännetään DOS-ikkunassa komennolla lcc koe.c, ladataan komennolla lcc koe.obj ja suoritetaan komennolla koe.)

DJGPP

DJGPP siis sisältää Dos-tilassa toimivan Gnu-C-kääntäjän. Mukana on myös muuta C-ohjelman kehittelyssä tarvittavaa kuten C-standardin mukaiset aliohjelmakirjastot sekä Gnu-debuggeri gdb. Koneen tulee olla vähintään 386-tasoinen. Käyttöjärjestelmänä voi olla Dos, Windows 3.x, Windows 95 tms.

DJGPP löytyy mm. osoitteesta
http://www.delorie.com/djgpp/
josta sen voi "imuroida" omaan koneeseensa. Periaatteessa imuroinnin voi tehdä FTP-ohjelmalla, mutta mukavampaa on käyttää käyttöliittymänä jotakin Web-selainta (esim. Internet Explorer tai Netscape).

Imuroitavien tiedostojen kokonaismäärä on muutamia megatavuja - riippuu siitä, mitä halutaan, ks.
http://www.delorie.com/djgpp/zip-picker.html
jolla voi pyytää tiedon siitä, mitkä tiedostot tarvitaan. Käytännössä debuggeri gdb kannattaa ottaa mukaan. Emacsia ei ehkä kannata, koska sen pienempikin versio siitä on aika iso, ja pienten C-ohjelmien editoinnin voi mainiosti hoitaa esimerkiksi NotePadillä.

Paketin mukana tuleva tiedosto readme.1st on aika selkeä, kunhan lukija ei häiriinny alussa olevasta pitkästä tiedostolistasta. Lisäksi DJGPP:n Web-sivuilta löytyy (epätäydellinen mutta hyödyllinen) DJGPP User's Guide.

Seuraavassa on kuitenkin olennaiset asennusohjeet suomeksi ja hiukan selvennettyinä:

  1. Perusta hakemisto DJGPP:tä varten. Seuraavassa oletetaan, että hakemisto on C:\DJGPP.
  2. Imuroi tarvittavat tiedostot edellä mainitulla tavalla kyseiseen hakemistoon. Jakelussa olevat tiedostot ovat zip-muotoisia.
  3. Pura kyseiset tiedostot sopivalla ohjelmalla, esim. PKUNZIP tai WinZip.
  4. Lisää autoexec.bat-tiedostoon seuraava:
    
           set DJGPP=C:\DJGPP\DJGPP.ENV
           set PATH=C:\DJGPP\BIN;%PATH%
    
  5. Aja asennusohjelma go32-v2.exe, joka on hakemistossa C:\DJGPP\BIN. Se kertoo, paljonko muistia ja vuorottelualuetta DJGPP voi käyttää järjestelmässäsi. Jos ensin mainittu (DPMI memory available) on vähemmän kuin 4 megatvua, katso ohjeita DJGPP FAQ:n luvusta 3 (Hardware and Software Requirements).
Nyt DJGPP:n pitäisi olla käytettävissä seuraavasti:
  1. Voit kirjoittaa C-ohjelman ja editoida sitä millä hyvänsä ohjelmalla, joka pystyy tallentamaan tiedoston pelkkänä tekstinä (plain text). Esimerkiksi NotePad käy hyvin.
  2. Jos käytät Windowsia, avaa MS-DOS-ikkuna seuraavia toimenpiteitä varten (tai käytä valmista MS-DOS-ikkunaa). Mene kyseisessä ikkunassa siihen hakemistoon, jossa ohjelmasi on.
  3. Voit kääntää ohjelman ohj.c seuraavasti:
    gcc -Wall -g ohj.c -o ohj.exe -lm
    (missä -lm ei ole välttämätön, jos ohjelma ei kutsu matematiikkakirjaston math.h funktioita).
  4. Kääntämisen jälkeen voit käynnistää ohjelman suoraan nimellään, ohj, taikka tutkinta- eli debuggaustilassa komennolla
    gdb ohj.exe
Käyttöesimerkki:

C:\my>type hello.c
#include <stdio.h>
int main(void)
{
printf("Hello, world!\n");
return 0;
}

C:\my>gcc -Wall -g hello.c -o hello.exe

C:\my>hello
Hello, world!

C:\my>

Jukka Korpela
Kirjoitettu 1997-09-16. Päivitetty 2003-08-09.