DJGPP-pikaopas MikroBitin C-ohjelmointikurssia varten Jere K„pyaho 28.7.1995 T„m„ pikaopas on tarkoitettu avuksi DJGPP-ohjelmiston asentamiseen erityisesti aloitteleville C-ohjelmoijille. DJGPP on ilmainen C- ja C++-k„„nt„j„, jonka voit kopioida itsellesi MBnetist„. Ilmaisuudestaan huolimatta DJGPP on hyv„ k„„nt„j„. Se sis„lt„„ DOS-laajentimen, jonka avulla voi ottaa k„ytt””n PC-koneen koko muistin. DJGPP on per„isin UNIX-ymp„rist”st„, ja toisin kuin useimmat MS-DOSissa toimivat C- ja C++-k„„nt„j„t, se on 32-bittinen. DJGPP:n ottaminen k„ytt””n vaatii keskim„„r„ist„ enemm„n MS-DOSin tuntemusta, mutta t„m„n oppaan pit„isi ainakin auttaa alkuun. 1. Hakemiston tekeminen ja sinne siirtyminen Tee DJGPP:lle oma hakemisto sen aseman juurihakemistoon johon haluat asentaa ohjelmiston (yleens„ asema C:) seuraavilla komennoilla: C: CD \ MD DJGPP CD DJGPP Nyt kehotteena pit„isi n„ky„ 'C:\DJGPP>', jos kehotteesi on asetettu n„ytt„m„„n ty”hakemisto ja >-merkki. P„„asia on, ett„ ty”hakemistona on C:\DJGPP. T„m„n voit tarkistaa antamalla pelk„n CD-komennon, jolloin MS-DOS n„ytt„„ ty”hakemiston. 2. Pakettien purkaminen Kaikki DJGPP-paketit sis„lt„v„t alihakemistorakenteen, jonka voi tehd„ automaattisesti paketteja purkaessa. Jos k„yt„t PKUNZIP-ohjelmaa, kaikki paketit puretaan komennolla PKUNZIP -d -o asema:\polku\paketti miss„ 'asema', 'polku' ja 'paketti' korvataan purettavan paketin t„ydellisell„ nimell„, esimerkiksi C:\DOWNLOAD\DJDOC112.ZIP. Perusasennukseen tarvittavat paketit voit purkaa komennoilla pkunzip -d -o c:\download\djdoc112.zip pkunzip -d -o c:\download\djeoe112.zip pkunzip -d -o c:\download\djdev112.zip pkunzip -d -o c:\download\gcc263bn.zip pkunzip -d -o c:\download\gas23bn.zip pkunzip -d -o c:\download\bnu252bn.zip Pakettien hakemistorakenne on suhteellinen perushakemistoon n„hden, eli kaikki hakemistot syntyv„t vaiheessa 1 tehdyn DJGPP-haaran alle. 4. Korjaussarjojen asentaminen Koska DJGPP:hen kuuluu GNU-ohjelmia, joista tulee uusia versioita v„h„n v„li„, on tarpeen asentaa my”s korjaussarjat. Ne puretaan samalla tavalla kuin varsinaiset paketitkin, mutta jokainen sarja sis„lt„„ lis„ksi komentojonon joka pit„„ ajaa ennen kuin korjaus tulee voimaan. Korjaussarjapakettien nimet ovat dj112m1.zip dj112m2.zip dj112m3.zip dj112m4.zip Varmista ett„ ty”hakemistona on edelleen C:\DJGPP. Pura sitten korjaussarjan sis„lt„v„ paketti komennolla pkunzip -d -o c:\download\dj112m1.zip Aja sitten korjauksen suorittava komentojono komennolla 112m1 Toista sama korjaussarjoille m2, m3 ja m4. 5. Ymp„rist”muuttujien asentaminen DJGPP:n ei toimi kunnolla ellei sit„ varten aseteta useita MS-DOSin ymp„rist”muuttujia. T„t„ varten on AUTOEXEC.BAT-tiedostoon lis„tt„v„ seuraavat rivit: SET DJGPP=C:/DJGPP/DJGPP.ENV SET TMPDIR=C:/DJGPP/TMP SET GO32TMP=C:/DJGPP/TMP SET GO32=ANSI DJGPP-hakemistossa vaiheen 3 j„ljilt„ oleva tekstitiedosto DJGPP.ENV sis„lt„„ t„rkeit„ tietoja, joita ei pid„ menn„ muuttamaan ellei tied„ tarkalleen mit„ tekee. Ymp„rist”muuttuja DJGPP osoittaa t„m„n tiedoston sijainnin. Lis„ksi ymp„rist”muuttujilla ilmoitetaan minne DJGPP saa laittaa k„„nn”sten aikana syntyv„t ty”tiedostot. GO32-muuttujalla ohjataan GO32-laajentimen toimintaa. Useimpiin tarkoituksiin riitt„„ pelkk„ ANSI-parametri. Lis„tietoja l”ytyy tekstitiedostoista \DJGPP\ README.1ST sek„ \DJGPP\DOCS\DJGPP\README.DOC. HUOM.! Ymp„rist”muuttujien arvoissa k„ytet„„n kenoviivan (\) sijasta tavallista kauttaviivaa (/), koska DJGPP on alkujaan per„isin UNIX-ymp„rist”st„. 6. Asennuksen testaaminen DJGPP-asennuksen onnistumisen testaamista varten on hakemistossa \DJGPP\SAMPLES\HELLO komentojono nimelt„ TESTIT.BAT. Mik„li joitakin t„rkeit„ osia DJGPP:st„ puuttuu, komentojono ilmoittaa siit„. Mik„li olet asentanut DJGPP:n vaiheen 3 ohjeiden mukaan, TESTIT.BAT antaa useita virheilmoituksia. T„m„ on normaalia, koska perusasennus on tarkoitettu vain C-kielisten ohjelmien k„„nt„miseen, ei C++- tai Objective-C-ohjelmien k„„nt„miseen. Peruspaketissa ei my”sk„„n ole info-ohjelmaa. Kaikki DJGPP:hen kuuluva materiaali on kuitenkin saatavissa MBnetist„. Mik„li TESTIT.BATin ajaminen pys„htyy ilmoitukseen "Error: This program requires a version of go32 (1.12.main3) newer than this one." et ole asentanut korjaussarjoja. Siisp„ tee niin. Mik„li kaikki menee hyvin, pit„isi viimeisen„ rivin„ ennen uutta kehotetta n„ky„ teksti Hello! This is the test program. 7. MikroBitin C-kurssin esimerkkiohjelmien k„„nt„minen MikroBitin C-kurssin esimerkit on testattu DJGPP:ll„. Ne kaikki saa ajettavaan muotoon samalla tavalla. Ensin k„„nnet„„n ohjelma DJGPP:ll„ binaarimuotoon ja sitten liimataan siihen GO32-laajennin. K„„nt„minen tapahtuu komennolla gcc -o ohjelma1 ohjelma1.c T„st„ on tuloksena tiedosto nimelt„ ohjelma1, joka on COFF-muotoinen objektitiedosto (jos t„m„ ei sano mit„„n, ei se mit„„n). Tiedosto muunnetaan ajettavaksi MS-DOSin EXE-tiedostoksi komennolla coff2exe ohjelma1 T„st„ syntyy tiedosto ohjelma1.exe, jonka voi ajaa komennolla ohjelma1 Jos haluat k„„nn”ksen aikana n„yt”lle lis„tietoja siit„ mit„ DJGPP oikeastaan tekee, voit lis„t„ k„„nn”skomentoon heti gcc:n per„„n valitsimen -v ("verbose" eli puhelias). 8. Lis„materiaalin asentaminen Mik„li haluat tutustua DJGPP:n ja siihen kuuluvien GNU-ohjelmien k„ytt”ohjeisiin, tarvitset texinfo-ohjelman sek„ itse dokumentit. Ne l”ytyv„t seuraavannimisist„ paketeista: txi310bn.zip texinfo-ohjelman binaarit txi310dc.zip texinfo-ohjelman dokumentit bnu252dc.zip binutils-paketin dokumentit gas23dc.zip GNU assemblerin (gas) version 2.3 dokumentit gcc263dc.zip GNU:n C/C++-k„„nt„j„n (gcc) version 2.6.3 dokumentit Lis„ksi mukaan kuuluu GNU-debuggeri gdb, johon kuuluva materiaali on paketeissa gdb412??.zip, miss„ ?? voi olla bn, dc, s1, s2, s3 tai s4. Eik„ se viel„ t„h„n lopu, mutta loputkin l”ytyv„t DJGPP:n README- tiedostoista, jotka KANNATTAA EHDOTTOMASTI LUKEA!!! Jos esimerkiksi haluat k„„nt„„ C++-ohjelmia, tarvitset libg++:n sek„ gpp-binaarit, jne. jne. Kaikista GNU-ohjelmista on my”s saatavissa l„hdekoodi. Jos siis haluat tutkia miten C- tai C++-k„„nt„j„ tai jokin sen oheisohjelma on tehty, voit imuroida l„hdekoodit MBnetist„ ja tutustua niihin.