Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: DJGPP & Allegro

Sivun loppuun

Antex [01.12.2005 12:46:39]

#

latasin ja asensin djgpp:n se toimiin hienosti ainakin "Hello World!" kääntyi ja toimi.
Nyt kuitenkin kun yritän asentaa Allegroa antaa make komento virheen:

In file included from ./include/allegro/internal/alconfig.h:33,
from ./include/allegro/base.h:36,
from ./include/allegro.h:29,
from src/fli.c:23:
./include/allegro/platform/aldjgpp.h:20:19: pc.h: No such file or directory
./include/allegro/platform/aldjgpp.h:22:21: dpmi.h: No such file or directory
./include/allegro/platform/aldjgpp.h:23:21: go32.h: No such file or directory
./include/allegro/platform/aldjgpp.h:26:27: sys/farptr.h: No such file or directory
In file included from ./include/allegro/internal/alconfig.h:33,
from ./include/allegro/base.h:36,
from ./include/allegro.h:29,
from src/fli.c:23:
./include/allegro/platform/aldjgpp.h: In function `bmp_write24':
./include/allegro/platform/aldjgpp.h:83: warning: implicit declaration of function `_farnspokew'
./include/allegro/platform/aldjgpp.h:84: warning: implicit declaration of function `_farnspokeb'
In file included from ./include/allegro/draw.h:62,
from ./include/allegro.h:44,
from src/fli.c:23:
./include/allegro/inline/draw.inl: In function `_putpixel':
./include/allegro/inline/draw.inl:243: warning: implicit declaration of function `_farsetsel'

JNE..

Onko tätä yhdistelmää mahdollistakaan saada toimimaan DOS konsolissa vai pitääkö etsiä jostain DOS kone?

jutti [01.12.2005 13:19:08]

#

Hämärästi muistan, että olisin itsekin joskus etsinyt tuota pc.h-tiedostoa. Se kuullostaa jollain lailla DOS-jutulta ja luulisi, että sellainen löytyisi DJGPP:n asennuksesta.

*etsii tiedostoja*

No nyt löytyi. Minulla on eräällä koneella djgpp-asennus. Kone pyörittää Win98:aa. Siitä löysin kansioista \djgpp\include\ ja \djgpp\include\inlines\ tuon tiedoston. Varmaan siitä löytyy muutkin tiedostot. Jos löydät pc.h-tiedoston samasta paikasta, hakupolut on pielessä jossain.

Ilmeisesti autoexec.batissa pitää olla joku PATH-juttu ja joku SET DJGPP-juttu. PATH määrittelee, että kääntäjän tarvitsemat ohjelmat löytyvät djgpp:n asennushakemistosta. SET asettaa ympäristömuuttujan, joka kertoo eri vaiheissa kääntäjälle, missä djgpp on. Tai jotain tällaista. Jos vilkaiset autoexec.batia ja siellä ei ole mitään djgpp:een viittaavaa, virhe on luultavasti siinä.

Antex [01.12.2005 13:25:13]

#

jep
SET DJGPP=C:\DJGPP\DJGPP.ENV
SET DJDIR=C:\DJGPP
PATH = %PATH%;C:\DJGPP\BIN;c:\DJGPP\INCLUDE;

nämä löytyy mitä vielä?

ai niin yritän tehdä tätä WinXP:n komentokehoiteessa ja nuo määritteet on system enviromentseja

jutti [02.12.2005 00:11:31]

#

./include/allegro/platform/aldjgpp.h:20:19: pc.h: No such file or directory

aldjgpp.h sisältää rivin #include <pc.h>

Tutki koneesi. Löytyykö siitä pc.h-tiedostoa? Jos löytyy, sitten on vika kääntäjän include-hakemistoissa. En tiedä, miten sellaiset määritellään, jos käytät pelkkää komentokehotetta. Ehkä jos käytät make-tiedostoja, niin niissä ehkä määritellään mistä kääntäjä löytää includet.

Antex [02.12.2005 09:39:31]

#

Täysin ihme vika.

aldjgpp.h sisältää myös mm. rivin #include <unistd.h> ja #include <dir.h> nämä molemmat tiedostot löytyvät polusta C:\djgpp\include.

Nuo tiedostot mistä se valittaa ovat kaikki täsmälleen samassa kansiossa kuin yllä mainitut.

Käytän allegron mukana tulevaa käännös systeemiä luulisi sen osaavan hakea nuo oikeasta paikasta suoraan.

No sain kuitenkin nuo valitukset pois kirjoittamalla includeen koko polun (epäilin sen toimivuutta ja järkevyyttä)lopputulos oli odotettu eli:

C:\djgpp\include\go32.h:19: error: conflicting types for 'size_t'
C:/Dev-Cpp/bin/../lib/gcc/mingw32/3.4.2/include/stddef.h:213: error: previous declaration of 'size_t' was here

Yllä olevasta poimin tuon polun joka osoittaa C:/Dev-Cpp...
poistin Dev-Cpp:n (tarvitsen kehitys ympäristön ilman windowssia pyöriville softille).
Tämän jälkeen käännös lähti toimimaan alkuun

src/graphics.c: In function '_set_gfx_mode':
src/graphics.c:635: error: 'blit_end' undeclared (first use in this function)
src/graphics.c:635: error: (Each undeclared identifier is reported only once
src/graphics.c:635: error: for each function it appears in.)
make.exe: *** [obj/djgpp/alleg/graphics.o] Error 1

Mikäs tämä nyt sitten on?

P.S ohjeiden lukeminen ei ole auttanut nissä kaikissa alleggor kääntyy helposti. Goolea en ole vielä koittanut mutta teen sen heti tämän jälkeen.

jutti [04.12.2005 19:35:30]

#

Kaikki on tietenkin mahdollista tehdä. Mutta luulen, että sotkusi johtuu siitä, että haluat ohjelman joka toimii jossain DOSissa ja haluat kehittää sitä jossain WinXP:ssä.

C:/Dev-Cpp/bin/../lib/gcc/mingw32/3.4.2/include/stddef.h viittaa Mingw-kääntäjään, joka viittaa Windowsiin ja Dev-Cpp:hen. Mingw:llä ja Dev-Cpp:llä voit tehdä ohjelmia, jotka näyttää toimivan ns. DOS-ikkunassa, mutta eihän siinä mitään DOSia ole. Luultavasti ne ei toimi oikeassa DOSissa.

Aidot DOS-ohjelmat käsittääksen i ei toimi XP:ssä mutta kyllä esim. Win98:ssa. Aitoja DOS-ohjelmia voi luultavasti kääntää vain djgpp:llä, joka taas ei toimi XP:ssä mutta kyllä Win98:ssa. Tää ei välttämättä ole ihan tällainen viidakko, ehkä joku tietää tästä enemmän.

Sinuna yrittäisin hankkia Win98-koneen, djgpp:n ja Allegron. Minulla on jossain Win98-koneessa djgpp ja Allegro. Mutta minulla ei ole puhdasta DOS-konetta missään. Jos haluat, voin yrittää tehdä djgpp:llä ja Win98-koneella jonkun grafiikkademon, esim. 640*480*8-ikkunassa ja lähettää exe-tiedosto sulle, jos saisit sen toimimaan DOS-koneessa. Jos se toimii, silloin pärjäät ainakin yhdistelmällä Win98, djgpp, RHIDE ja Allegro.

Niin, tuon RHIDE:n voi jättää pois ja käyttää jotain hyvää syntaksivärieditoria ja make-tiedostoja. Joista minä taas en tiedä mitään.

Antex [05.12.2005 10:07:05]

#

8| jotain tällaista pelkäsinkin...

täytyy hankkia DOS/Win98 kone jostakin.

Kiitos Jutti kärsivällisyydestä ja neuvoista.

Metabolix [05.12.2005 13:19:48]

#

Tai sitten voi asentaa emulaattorin, kuten BOCHSin, ja laittaa siihen DOSin pyörimään. DOS-käynnistyslevykkeitä löytyy netistä, vaikka eihän niitä oikeasti saisi kai levittää... Tai onhan tietysti olemassa FreeDOS yms.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta