home *** CD-ROM | disk | FTP | other *** search
- -----------------------------------------------------------------------
-
- D J G P P V 2 - P I K A O P A S
- M B N E T I N K Ä Y T T Ä J I L L E
-
- J e r e K ä p y a h o
-
- Versio 2.01
- 29.11.1996
-
- -----------------------------------------------------------------------
-
- -----------------------V A R O I T U S --------------------------------
- Tämä ohje on kirjoitettu siinä toivossa että siitä olisi sen lukijoille
- hyötyä, mutta kirjoittaja ei ota vastuuta mahdollisten virheiden tai
- epätarkkuuksien aiheuttamista vahingoista. Mikäli löydät tästä ohjeesta
- virheitä, ilmoita niistä tekijälle MBnetissä.
- -----------------------------------------------------------------------
-
- -----------------------H U O M A U T U S-------------------------------
- Tämä pikaopas sisältää radikaalin muutoksen sekä MikroBitin C-kurssilla
- että muissa MikroBitin ohjelmointiaiheisissa artikkeleissa esitettyihin
- tietoihin että 28.7.1995 ja 9.2.1996 päivättyihin edellisiin pikaoppai-
- siin, jotka molemmat käsittelivät DJGPP:n versiota 1.12. Tässä oppaassa
- neuvotaan DJGPP:n asentaminen kokonaisuudessaan sekä C- että C++-ohjel-
- mointia varten.
-
- Versio 2.01 sisältää korjauksia ja täydennyksiä, jotka ovat aiheellisia
- DJGPP:n pienpäivityksen 2.00 --> 2.01 takia.
- -----------------------------------------------------------------------
-
- -------
- Sisältö
- -------
- 0. Johdanto
- 1. Tarvittavat paketit
- 2. Hakemiston tekeminen
- 3. Pakettien purkaminen
- 4. Ympäristömuuttujan ja hakupolun asettaminen
- 5. CWSDPMI:n asentaminen
- 6. Asennuksen testaaminen
- 7. MikroBitin C-kurssin esimerkkiohjelmien kääntäminen
- 8. Lisämateriaalin asentaminen
- 9. Jäikö vielä kysyttävää?
-
- ---------------------------------------------------------------------
-
- 0. Johdanto
-
- Tämä pikaopas on tarkoitettu avuksi DJGPP-ohjelmiston asentamiseen
- erityisesti aloitteleville C- ja C++-ohjelmoijille. DJGPP on
- DJ Delorien GNU C/C++:n pohjalta kehittämä ilmainen C- ja C++-
- kääntäjä, jonka voit kopioida itsellesi MBnetistä. Vaikka DJGPP on
- ilmainen, se on yleisesti tunnustettu hyväksi C/C++-kääntäjäksi. Se
- sisältää myös DOS-laajentimen nimeltä GO32, jonka avulla voi ottaa
- käyttöön PC-koneen koko muistin.
-
- DJGPP pohjautuu GNU C/C++:aan, joka puolestaan on peräisin UNIX-
- ympäristöstä. Toisin kuin useimmat MS-DOSissa toimivat C- ja C++-
- kääntäjät, se on 32-bittinen. DJGPP:n ottaminen käyttöön vaatii
- ainakin keskimääräistä ellei parempaa MS-DOSin tuntemusta, mutta
- tämän oppaan pitäisi ainakin auttaa alkuun.
-
- Tämä pikaopas käsittelee DJGPP:n versiota 2.0. Mikäli sinulla on
- käytössäsi vanhempi versio 1.12, voit joko kopioida MBnetistä
- vanhan DJGPP-pikaoppaan (jos välttämättä haluat tai sinun on
- jostain syystä pakko käyttää vanhaa versiota), tai aloittaa
- puhtaalta pöydältä ja kopioida itsellesi versio 2.0 MBnetistä.
-
-
- 1. Tarvittavat paketit
-
- Kopioi ensin tiedostot readme.dj2 sekä faq202b.zip ja tutustu niihin
- parhaan kykysi mukaan. Tällä pikaoppaalla pääset kyllä alkuun ilman
- niitäkin, mutta noista tiedostoista löytyy tietoja myös monesta aiheesta
- joita tässä ei käsitellä.
-
- DJGPP:n käyttöön tarvittavat paketit kuvauksineen ovat seuraavat:
-
- readme.dj2 "Lue minut" -dokumentti (alkuperäinen nimi: readme.1st)
- faq202b.zip DJGPP FAQ v2.02: yleisimmät kysymykset ja vastaukset niihin
- djdev201.zip DJGPP:n käyttöön tarvittava peruspaketti, v2.01
- bnu27b.zip Binutils v2.7: erilaisia olennaisia apuohjelmia
- gcc2721b.zip GNU C -kääntäjä v2.7.2.1
- gpp272b.zip GNU C++ -kääntäjä v2.7.2
- lgp271b.zip C++-kirjastot v.2.7.1
- txi390b.zip info-ohjelman versio 3.9.0 dokumenttien lukemiseen
- csdpmi3b.zip CWSDPMI-ohjelman versio 3 DPMI-muistin käyttöön (jos käytetään
- DJGPP:tä pelkässä DOS:issa eikä esimerkiksi Windows 95:ssä)
-
- Näiden pakettien koko on yhteensä noin 5,6 Mt.
-
-
- Jokaisessa paketissa on sen sisältämien ohjelmien dokumentit valmiina.
- Erillisiä dokumentaatiopaketteja ei tarvitse kopioida kuten versiossa
- 1.12. Dokumenttien lukemiseen tarvitaan kuitenkin info-ohjelma, joka
- on mainittu yllä olevassa listassa.
-
- Mikäli haluat käyttää GNU make -ohjelmaa projektien ylläpitoon, tarvitset
- lisäksi paketin mak375b.zip (204 kt).
-
- Kaikkien tässä kohdassa mainittujen pakettien asentaminen vie levytilaa
- yhteensä noin 14,5 Mt. Tähän ei ole laskettu mukaan itse paketteja.
- Pahimmassa tapauksessa tarvitset siis DJGPP:n asentamiseen yli 20 Mt
- levytilaa, jos paketit ovat samalla levyosiolla. Paketit sisältävät
- lisäksi runsaasti pieniä tiedostoja, joten jos osion varausyksikön
- koko on suuri, tilaa kuluu vielä paljon enemmän.
-
-
- 2. Hakemiston tekeminen
-
- 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.
-
-
- 3. 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\djdev201.zip.
-
- Pakettien hakemistorakenne on suhteellinen perushakemistoon nähden,
- eli kaikki hakemistot syntyvät vaiheessa 1 tehdyn DJGPP-haaran alle.
-
- Jos haluat olla todella gurumainen, voit purkaa kaikki paketit
- kerralla käyttämällä MS-DOS:in FOR-komentoa, näin:
-
- for %%a in (c:\djgpptmp\*.zip) do pkunzip -d -o %a
-
- Edellisessä esimerkissä oletetaan, että tarvittavat paketit ovat
- hakemistossa C:\DJGPPTMP, eikä hakemistossa ole muita paketteja.
-
-
- 4. Ympäristömuuttujan ja hakupolun asettaminen
-
- DJGPP:n ei toimi kunnolla ellei DJGPP-ympäristömuuttujaa aseteta.
- Tätä varten on AUTOEXEC.BAT-tiedostoon lisättävä seuraava rivi:
-
- SET DJGPP=C:\DJGPP\DJGPP.ENV
-
- Lisäksi pitää lisätä hakemisto C:\DJGPP\BIN hakupolkuun. Omassa
- AUTOEXEC.BAT:issasi on todennäköisesti jo PATH-käsky, joka on
- suunnilleen tämän näköinen:
-
- PATH C:\DOS;C:\BAT;C:\UTIL
-
- DJGPP:n lisäämisen jälkeen PATH-komennon pitäisi näyttää tältä:
-
- PATH C:\DOS;C:\BAT;C:\UTIL;C:\DJGPP\BIN
-
- Jos olet asentanut DJGPP:n johonkin muuhun asemaan ja/tai hakemistoon,
- käytät tietysti PATH-komennossa vastaavia tietoja.
-
- Ympäristömuuttujassa DJGPP viitataan tiedostoon nimeltä DJGPP.ENV.
- Tämä tekstitiedosto sijaitsee DJGPP-hakemistossa ja sisältää tärkeitä
- tietoja, joita ei pidä mennä muuttamaan ellei tiedä tarkalleen mitä
- tekee.
-
-
- 5. CWSDPMI-ohjelman asentaminen
-
- DJGPP käyttää DPMI-standardia muistin hallintaan. Muun muassa Windows 95
- ja OS/2 sisältävät DPMI-palvelimen, mutta jos käytät DJGPP:tä pelkässä
- MS-DOSissa, sinun pitää asentaa CWSDPMI-ohjelma. Se on paketissa
- csdpmi3.zip (40 kt).
-
- CWSDPMI asennetaan lisäämällä AUTOEXEC.BAT-tiedoston perään rivi
-
- cwsdpmi -p
-
- Tämä asentaa CWSDPMI:n pysyvästi muistiin. Ohjelma poistetaan komennolla
-
- cwsdpmi -u
-
-
- 6. Asennuksen testaaminen
-
- Voit testata DJGPP-asennuksen onnistumisen kirjoittamalla ja ajamalla
- pari pientä esimerkkiohjelmaa, yhden C-kielisen ja yhden C++-kielisen.
-
- Kopioi seuraava C-kielinen ohjelma uuteen dokumenttiin tekstieditorissa
- ja tallenna se nimellä hello1.c:
-
- /* C-kielinen DJGPP-testiohjelma alkaa */
- #include <stdio.h>
-
- int main(void)
- {
- printf("Hello, protected mode world!\n");
- return 0;
- }
- /* C-kielinen DJGPP-testiohjelma loppuu */
-
- Palaa MS-DOSin komentoriville ja käännä ohjelma seuraavalla komennolla:
-
- gcc -o hello1.exe hello1.c
-
- Jos kaikki on kunnossa, et saa mitään ilmoituksia ruudulle. Kun käännös
- on päättynyt, tarkista että hakemistossa on tiedosto hello1.exe. Kun ajat
- tiedoston, se tulostaa
-
- Hello, protected mode world!
-
- ja palaa DOSiin.
-
- C++-kielen toimivuuden voit testata seuraavalla ohjelmalla:
-
- // C++-kielinen DJGPP-testiohjelma alkaa
- #include <iostream.h>
-
- int main()
- {
- cout << "Hello, protected mode world!" << endl;
- return 0;
- }
- // C++-kielinen DJGPP-testiohjelma loppuu
-
- Tallenna ohjelma tiedostoon hello2.cc.
- Käännä ohjelma seuraavalla komennolla:
-
- gcc -o hello2.exe hello2.cc -liostream
-
- Jos kaikki menee hyvin, mitään ilmoituksia ei tule. Aja ohjelma hello2.exe.
- Ruudulla pitäisi näkyä sama teksti kuin C-kielistä ohjelmaa ajaessa.
-
- Onneksi olkoon! Nyt sinulla pitäisi olla toimiva DJGPP.
-
- Jos käännät ohjelman ilman valitsinta -liostream, saat seuraavan kaltaisia
- virheilmoituksia:
-
- hello2.cc(.text+0x18): undefined reference to 'endl(ostream &)'
- hello2.cc(.text+0x22): undefined reference to 'cout'
- hello2.cc(.text+0x27): undefined reference to 'ostream::operator<<
- (char const *)'
- hello2.cc(.text+0x32): undefined reference to 'ostream::operator<<
- (ostream &(*)(ostream &))'
-
- Kirjasto \djgpp\lib\libiostr.a on C++:n iostream-kirjasto, jota tarvitaan
- cout:in ja muiden vuotoimintojen käyttöön.
-
- C++-ohjelmia voi kääntää myös komennolla gxx, jolloin ei tarvita lainkaan
- valitsinta -liostream.
-
-
- 7. MikroBitin C-kurssin esimerkkiohjelmien kääntäminen
-
- MikroBitissä alkaen numerosta 6-7/1995 julkaistun C-ohjelmointikurssin
- esimerkit on testattu DJGPP:llä. Ne kaikki saa ajettavaan muotoon samalla
- tavalla, kääntämällä komennolla
-
- gcc -o ohjelma1.exe ohjelma1.c
-
- DJGPP:n versio 2.0 kääntää ohjelman suoraan EXE-muotoon. Näin saadaan
- tiedosto nimeltä 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
-
- DJGPP:hen kuuluu virheenkorjausohjelma eli debuggeri nimeltä fsdb,
- jonka käytöstä saa apua painamalla F1-näppäintä kun ohjelma on käynnissä.
- Tehokkaampi mutta vaikeaselkoisempi debuggeri on gdb, jonka ohjelmat
- ovat paketissa gdb416b.zip (508 kt).
-
- 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. Lähdekoodipaketin
- nimessä on yleensä perässä olevan b-kirjaimen tilalla s (source), eli
- esimerkiksi gcc-kääntäjän lähdekoodi on tiedostossa gcc2721s.zip.
-
-
- 9. Jäikö vielä kysyttävää?
-
- Jos sinulla kaiken tämän jälkeen on vielä polttavia DJGPP-ongelmia,
- toimi näin:
-
- - Lue ensin DJGPP:n virallinen FAQ-lista, paketissa faq202b.zip.
- - Jos ongelma ei ratkea, kysy sitä yleisesti MBnetin alueella 8, eli
- PC-ohjelmointi-alueella. Pyydän mitä kohteliaimmin: älä lähetä
- yksityispostia minulle DJGPP-asioissa. Yleisesti kysytyt kysymykset
- auttavat muitakin, ja saat niihin vastauksia nopeammin.
- - Jos olet Internet-käyttäjä, DJGPP:lle omistettu uutisryhmä on
- nimeltään comp.os.msdos.djgpp.
-
- Hauskaa ohjelmointia DJGPP:llä!
-
-