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:
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 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ä:
C:\DJGPP
.
autoexec.bat
-tiedostoon seuraava:
set DJGPP=C:\DJGPP\DJGPP.ENV
set PATH=C:\DJGPP\BIN;%PATH%
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).
.c
seuraavasti:gcc -Wall -g
ohj.c -o
ohj.exe -lm
-lm
ei ole välttämätön, jos ohjelma ei kutsu
matematiikkakirjaston math.h funktioita).
gdb
ohj.exe
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.exeC:\my>
hello Hello, world!C:\my>
Jukka Korpela
Kirjoitettu 1997-09-16.
Päivitetty 2003-08-09.