home *** CD-ROM | disk | FTP | other *** search
/ Mikrobitti Virtuaalilehti 1997 / mbvirt1997d.iso / ohjelmat / mbnetdj2.txt < prev    next >
Encoding:
Text File  |  1998-01-26  |  10.9 KB  |  307 lines

  1. -----------------------------------------------------------------------
  2.  
  3.                  D J G P P   V  2  -   P I K A O P A S
  4.                  M B N E T I N   K Ä Y T T Ä J I L L E
  5.  
  6.                        J e r e    K ä p y a h o
  7.  
  8.                              Versio 2.01
  9.                              29.11.1996
  10.  
  11. -----------------------------------------------------------------------
  12.  
  13. -----------------------V A R O I T U S --------------------------------
  14. Tämä ohje on kirjoitettu siinä toivossa että siitä olisi sen lukijoille
  15. hyötyä, mutta kirjoittaja ei ota vastuuta mahdollisten virheiden tai
  16. epätarkkuuksien aiheuttamista vahingoista. Mikäli löydät tästä ohjeesta
  17. virheitä, ilmoita niistä tekijälle MBnetissä.
  18. -----------------------------------------------------------------------
  19.  
  20. -----------------------H U O M A U T U S-------------------------------
  21. Tämä pikaopas sisältää radikaalin muutoksen sekä MikroBitin C-kurssilla
  22. että muissa MikroBitin ohjelmointiaiheisissa artikkeleissa esitettyihin
  23. tietoihin että 28.7.1995 ja 9.2.1996 päivättyihin edellisiin pikaoppai-
  24. siin, jotka molemmat käsittelivät DJGPP:n versiota 1.12. Tässä oppaassa
  25. neuvotaan DJGPP:n asentaminen kokonaisuudessaan sekä C- että C++-ohjel-
  26. mointia varten.
  27.  
  28. Versio 2.01 sisältää korjauksia ja täydennyksiä, jotka ovat aiheellisia
  29. DJGPP:n pienpäivityksen 2.00 --> 2.01 takia.
  30. -----------------------------------------------------------------------
  31.  
  32. -------
  33. Sisältö
  34. -------
  35. 0. Johdanto
  36. 1. Tarvittavat paketit
  37. 2. Hakemiston tekeminen
  38. 3. Pakettien purkaminen
  39. 4. Ympäristömuuttujan ja hakupolun asettaminen
  40. 5. CWSDPMI:n asentaminen
  41. 6. Asennuksen testaaminen
  42. 7. MikroBitin C-kurssin esimerkkiohjelmien kääntäminen
  43. 8. Lisämateriaalin asentaminen
  44. 9. Jäikö vielä kysyttävää?
  45.  
  46. ---------------------------------------------------------------------
  47.  
  48. 0. Johdanto
  49.  
  50. Tämä pikaopas on tarkoitettu avuksi DJGPP-ohjelmiston asentamiseen
  51. erityisesti aloitteleville C- ja C++-ohjelmoijille. DJGPP on
  52. DJ Delorien GNU C/C++:n pohjalta kehittämä ilmainen C- ja C++-
  53. kääntäjä, jonka voit kopioida itsellesi MBnetistä. Vaikka DJGPP on
  54. ilmainen, se on yleisesti tunnustettu hyväksi C/C++-kääntäjäksi. Se
  55. sisältää myös DOS-laajentimen nimeltä GO32, jonka avulla voi ottaa
  56. käyttöön PC-koneen koko muistin.
  57.  
  58. DJGPP pohjautuu GNU C/C++:aan, joka puolestaan on peräisin UNIX-
  59. ympäristöstä. Toisin kuin useimmat MS-DOSissa toimivat C- ja C++-
  60. kääntäjät, se on 32-bittinen. DJGPP:n ottaminen käyttöön vaatii
  61. ainakin keskimääräistä ellei parempaa MS-DOSin tuntemusta, mutta
  62. tämän oppaan pitäisi ainakin auttaa alkuun.
  63.  
  64. Tämä pikaopas käsittelee DJGPP:n versiota 2.0. Mikäli sinulla on
  65. käytössäsi vanhempi versio 1.12, voit joko kopioida MBnetistä
  66. vanhan DJGPP-pikaoppaan (jos välttämättä haluat tai sinun on
  67. jostain syystä pakko käyttää vanhaa versiota), tai aloittaa
  68. puhtaalta pöydältä ja kopioida itsellesi versio 2.0 MBnetistä.
  69.  
  70.  
  71. 1. Tarvittavat paketit
  72.  
  73. Kopioi ensin tiedostot readme.dj2 sekä faq202b.zip ja tutustu niihin
  74. parhaan kykysi mukaan. Tällä pikaoppaalla pääset kyllä alkuun ilman
  75. niitäkin, mutta noista tiedostoista löytyy tietoja myös monesta aiheesta
  76. joita tässä ei käsitellä.
  77.  
  78. DJGPP:n käyttöön tarvittavat paketit kuvauksineen ovat seuraavat:
  79.  
  80. readme.dj2    "Lue minut" -dokumentti (alkuperäinen nimi: readme.1st)
  81. faq202b.zip   DJGPP FAQ v2.02: yleisimmät kysymykset ja vastaukset niihin
  82. djdev201.zip  DJGPP:n käyttöön tarvittava peruspaketti, v2.01
  83. bnu27b.zip    Binutils v2.7: erilaisia olennaisia apuohjelmia
  84. gcc2721b.zip  GNU C -kääntäjä v2.7.2.1
  85. gpp272b.zip   GNU C++ -kääntäjä v2.7.2
  86. lgp271b.zip   C++-kirjastot v.2.7.1
  87. txi390b.zip   info-ohjelman versio 3.9.0 dokumenttien lukemiseen
  88. csdpmi3b.zip  CWSDPMI-ohjelman versio 3 DPMI-muistin käyttöön (jos käytetään
  89.               DJGPP:tä pelkässä DOS:issa eikä esimerkiksi Windows 95:ssä)
  90.  
  91. Näiden pakettien koko on yhteensä noin 5,6 Mt.
  92.  
  93.  
  94. Jokaisessa paketissa on sen sisältämien ohjelmien dokumentit valmiina.
  95. Erillisiä dokumentaatiopaketteja ei tarvitse kopioida kuten versiossa
  96. 1.12. Dokumenttien lukemiseen tarvitaan kuitenkin info-ohjelma, joka
  97. on mainittu yllä olevassa listassa.
  98.  
  99. Mikäli haluat käyttää GNU make -ohjelmaa projektien ylläpitoon, tarvitset
  100. lisäksi paketin mak375b.zip (204 kt).
  101.  
  102. Kaikkien tässä kohdassa mainittujen pakettien asentaminen vie levytilaa
  103. yhteensä noin 14,5 Mt. Tähän ei ole laskettu mukaan itse paketteja.
  104. Pahimmassa tapauksessa tarvitset siis DJGPP:n asentamiseen yli 20 Mt
  105. levytilaa, jos paketit ovat samalla levyosiolla. Paketit sisältävät
  106. lisäksi runsaasti pieniä tiedostoja, joten jos osion varausyksikön
  107. koko on suuri, tilaa kuluu vielä paljon enemmän.
  108.  
  109.  
  110. 2. Hakemiston tekeminen
  111.  
  112. Tee DJGPP:lle oma hakemisto sen aseman juurihakemistoon johon haluat
  113. asentaa ohjelmiston (yleensä asema C:) seuraavilla komennoilla:
  114.  
  115. C:
  116. CD \
  117. MD DJGPP
  118. CD DJGPP
  119.  
  120. Nyt kehotteena pitäisi näkyä 'C:\DJGPP>', jos kehotteesi on asetettu
  121. näyttämään työhakemisto ja >-merkki. Pääasia on, että työhakemistona on
  122. C:\DJGPP. Tämän voit tarkistaa antamalla pelkän CD-komennon, jolloin
  123. MS-DOS näyttää työhakemiston.
  124.  
  125.  
  126. 3. Pakettien purkaminen
  127.  
  128. Kaikki DJGPP-paketit sisältävät alihakemistorakenteen, jonka voi tehdä
  129. automaattisesti paketteja purkaessa. Jos käytät PKUNZIP-ohjelmaa,
  130. kaikki paketit puretaan komennolla
  131.  
  132. PKUNZIP -d -o asema:\polku\paketti
  133.  
  134. missä 'asema', 'polku' ja 'paketti' korvataan purettavan paketin 
  135. täydellisellä nimellä, esimerkiksi c:\download\djdev201.zip.
  136.  
  137. Pakettien hakemistorakenne on suhteellinen perushakemistoon nähden,
  138. eli kaikki hakemistot syntyvät vaiheessa 1 tehdyn DJGPP-haaran alle.
  139.  
  140. Jos haluat olla todella gurumainen, voit purkaa kaikki paketit
  141. kerralla käyttämällä MS-DOS:in FOR-komentoa, näin:
  142.  
  143. for %%a in (c:\djgpptmp\*.zip) do pkunzip -d -o %a
  144.  
  145. Edellisessä esimerkissä oletetaan, että tarvittavat paketit ovat
  146. hakemistossa C:\DJGPPTMP, eikä hakemistossa ole muita paketteja.
  147.  
  148.  
  149. 4. Ympäristömuuttujan ja hakupolun asettaminen
  150.  
  151. DJGPP:n ei toimi kunnolla ellei DJGPP-ympäristömuuttujaa aseteta.
  152. Tätä varten on AUTOEXEC.BAT-tiedostoon lisättävä seuraava rivi:
  153.  
  154. SET DJGPP=C:\DJGPP\DJGPP.ENV
  155.  
  156. Lisäksi pitää lisätä hakemisto C:\DJGPP\BIN hakupolkuun. Omassa
  157. AUTOEXEC.BAT:issasi on todennäköisesti jo PATH-käsky, joka on
  158. suunnilleen tämän näköinen:
  159.  
  160. PATH C:\DOS;C:\BAT;C:\UTIL
  161.  
  162. DJGPP:n lisäämisen jälkeen PATH-komennon pitäisi näyttää tältä:
  163.  
  164. PATH C:\DOS;C:\BAT;C:\UTIL;C:\DJGPP\BIN
  165.  
  166. Jos olet asentanut DJGPP:n johonkin muuhun asemaan ja/tai hakemistoon,
  167. käytät tietysti PATH-komennossa vastaavia tietoja.
  168.  
  169. Ympäristömuuttujassa DJGPP viitataan tiedostoon nimeltä DJGPP.ENV.
  170. Tämä tekstitiedosto sijaitsee DJGPP-hakemistossa ja sisältää tärkeitä
  171. tietoja, joita ei pidä mennä muuttamaan ellei tiedä tarkalleen mitä
  172. tekee.
  173.  
  174.  
  175. 5. CWSDPMI-ohjelman asentaminen
  176.  
  177. DJGPP käyttää DPMI-standardia muistin hallintaan. Muun muassa Windows 95
  178. ja OS/2 sisältävät DPMI-palvelimen, mutta jos käytät DJGPP:tä pelkässä
  179. MS-DOSissa, sinun pitää asentaa CWSDPMI-ohjelma. Se on paketissa
  180. csdpmi3.zip (40 kt).
  181.  
  182. CWSDPMI asennetaan lisäämällä AUTOEXEC.BAT-tiedoston perään rivi
  183.  
  184. cwsdpmi -p
  185.  
  186. Tämä asentaa CWSDPMI:n pysyvästi muistiin. Ohjelma poistetaan komennolla
  187.  
  188. cwsdpmi -u
  189.  
  190.  
  191. 6. Asennuksen testaaminen
  192.  
  193. Voit testata DJGPP-asennuksen onnistumisen kirjoittamalla ja ajamalla
  194. pari pientä esimerkkiohjelmaa, yhden C-kielisen ja yhden C++-kielisen.
  195.  
  196. Kopioi seuraava C-kielinen ohjelma uuteen dokumenttiin tekstieditorissa
  197. ja tallenna se nimellä hello1.c:
  198.  
  199. /* C-kielinen DJGPP-testiohjelma alkaa */
  200. #include <stdio.h>
  201.  
  202. int main(void)
  203. {
  204.     printf("Hello, protected mode world!\n");
  205.     return 0;
  206. }
  207. /* C-kielinen DJGPP-testiohjelma loppuu */
  208.  
  209. Palaa MS-DOSin komentoriville ja käännä ohjelma seuraavalla komennolla:
  210.  
  211. gcc -o hello1.exe hello1.c
  212.  
  213. Jos kaikki on kunnossa, et saa mitään ilmoituksia ruudulle. Kun käännös
  214. on päättynyt, tarkista että hakemistossa on tiedosto hello1.exe. Kun ajat
  215. tiedoston, se tulostaa
  216.  
  217. Hello, protected mode world!
  218.  
  219. ja palaa DOSiin.
  220.  
  221. C++-kielen toimivuuden voit testata seuraavalla ohjelmalla:
  222.  
  223. // C++-kielinen DJGPP-testiohjelma alkaa
  224. #include <iostream.h>
  225.  
  226. int main()
  227. {
  228.     cout << "Hello, protected mode world!" << endl;
  229.     return 0;
  230. }
  231. // C++-kielinen DJGPP-testiohjelma loppuu
  232.  
  233. Tallenna ohjelma tiedostoon hello2.cc.
  234. Käännä ohjelma seuraavalla komennolla:
  235.  
  236. gcc -o hello2.exe hello2.cc -liostream
  237.  
  238. Jos kaikki menee hyvin, mitään ilmoituksia ei tule. Aja ohjelma hello2.exe.
  239. Ruudulla pitäisi näkyä sama teksti kuin C-kielistä ohjelmaa ajaessa.
  240.  
  241. Onneksi olkoon! Nyt sinulla pitäisi olla toimiva DJGPP.
  242.  
  243. Jos käännät ohjelman ilman valitsinta -liostream, saat seuraavan kaltaisia
  244. virheilmoituksia:
  245.  
  246. hello2.cc(.text+0x18): undefined reference to 'endl(ostream &)'
  247. hello2.cc(.text+0x22): undefined reference to 'cout'
  248. hello2.cc(.text+0x27): undefined reference to 'ostream::operator<<
  249.   (char const *)'
  250. hello2.cc(.text+0x32): undefined reference to 'ostream::operator<<
  251.   (ostream &(*)(ostream &))'
  252.  
  253. Kirjasto \djgpp\lib\libiostr.a on C++:n iostream-kirjasto, jota tarvitaan
  254. cout:in ja muiden vuotoimintojen käyttöön.
  255.  
  256. C++-ohjelmia voi kääntää myös komennolla gxx, jolloin ei tarvita lainkaan
  257. valitsinta -liostream.
  258.  
  259.  
  260. 7. MikroBitin C-kurssin esimerkkiohjelmien kääntäminen
  261.  
  262. MikroBitissä alkaen numerosta 6-7/1995 julkaistun C-ohjelmointikurssin
  263. esimerkit on testattu DJGPP:llä. Ne kaikki saa ajettavaan muotoon samalla
  264. tavalla, kääntämällä komennolla
  265.  
  266. gcc -o ohjelma1.exe ohjelma1.c
  267.  
  268. DJGPP:n versio 2.0 kääntää ohjelman suoraan EXE-muotoon. Näin saadaan
  269. tiedosto nimeltä ohjelma1.exe, jonka voi ajaa komennolla
  270.  
  271. ohjelma1
  272.  
  273. Jos haluat käännöksen aikana näytölle lisätietoja siitä mitä DJGPP
  274. oikeastaan tekee, voit lisätä käännöskomentoon heti gcc:n perään
  275. valitsimen -v ("verbose" eli puhelias).
  276.  
  277.  
  278. 8. Lisämateriaalin asentaminen
  279.  
  280. DJGPP:hen kuuluu virheenkorjausohjelma eli debuggeri nimeltä fsdb,
  281. jonka käytöstä saa apua painamalla F1-näppäintä kun ohjelma on käynnissä.
  282. Tehokkaampi mutta vaikeaselkoisempi debuggeri on gdb, jonka ohjelmat
  283. ovat paketissa gdb416b.zip (508 kt).
  284.  
  285. Kaikista GNU-ohjelmista on myös saatavissa lähdekoodi. Jos siis haluat
  286. tutkia miten C- tai C++-kääntäjä tai jokin sen oheisohjelma on tehty,
  287. voit imuroida lähdekoodit MBnetistä ja tutustua niihin. Lähdekoodipaketin
  288. nimessä on yleensä perässä olevan b-kirjaimen tilalla s (source), eli
  289. esimerkiksi gcc-kääntäjän lähdekoodi on tiedostossa gcc2721s.zip.
  290.  
  291.  
  292. 9. Jäikö vielä kysyttävää?
  293.  
  294. Jos sinulla kaiken tämän jälkeen on vielä polttavia DJGPP-ongelmia,
  295. toimi näin:
  296.  
  297. - Lue ensin DJGPP:n virallinen FAQ-lista, paketissa faq202b.zip.
  298. - Jos ongelma ei ratkea, kysy sitä yleisesti MBnetin alueella 8, eli
  299.   PC-ohjelmointi-alueella. Pyydän mitä kohteliaimmin: älä lähetä
  300.   yksityispostia minulle DJGPP-asioissa. Yleisesti kysytyt kysymykset
  301.   auttavat muitakin, ja saat niihin vastauksia nopeammin.
  302. - Jos olet Internet-käyttäjä, DJGPP:lle omistettu uutisryhmä on
  303.   nimeltään comp.os.msdos.djgpp.
  304.  
  305. Hauskaa ohjelmointia DJGPP:llä!
  306.  
  307.