Olen tässä nyt jo jonkin aikaa yrittänyt päästä viimeinkin tekemään C/C++:lla jotakin, ja grafiikkaa olen yrittänyt saada aikaiseksi. 3D:hen en ole ajatellut vielä ryhtyä, vaan ihan perusgrafiikkaa tarvitsisin, joten olen yrittänyt saada SDL:n pelittämään. Kuitenkin joka kerta, kun yritän johonkin ryhtyä, niin aina tulee joku este vastaan.
Ensin yritin Borland C++:lla, mutta siihen en tietenkään löytänyt SDL:n asennusohjeita. Sitten siirryin DevC++:aan, ja latasin siitä nelos-version. Huomasin sitten, etten SDL:n asennusoppaan ohjeita noudattamalla saanut sitä asennettua. Joku sitten vihjaisi, että pitäisi olla uudempi versio DevC++:sta. Latasin sitten DevC++ 4.9.8.0:n. SDL:ää en viitsinyt edes asentaa, kun huomasin, että jo ihan tavallinen "Hello World!", tai mikä tahansa muukin ohjelma aiheuttaa ajettaessa virheen "Unable to run program file". Helpistä en löytänyt mitään tietoa, mistä moinen virhe voisi johtua.
Sitten siirryin Turbo C:hen, jossa oli valmiina mukana jokin Graphics.h. Sikäli kuin ymmärsin, sillä ei kuitenkaan saanut aikaan enempää kuin 16 väriä, ja lisäksi sain virheilmoituksen tuon tuostakin kuin tein ihan pienen muutoksen, eikä virheilmoitus lähtenyt sittenkään, kun poistin tekemäni muutoksen. Tässä vaiheessa motivaationi ryhtyä mihinkään C:llä on aika matalalla, ja lisäksi kuulen tuon tuostakin valituksia siitä, että ohjelmoin vieläkin Basicilla.
Eivätkä tuossa eivät suinkaan olleet kaikki ongelmat, jotka ovat tulleet vastaan, joten kysynpä nyt siis, että mitä kääntäjää ja mitä ohjelmointiympäristöä (joilla voi käyttää SDL:ää) tässä oikein tulisi kokeilla, kun noita em. en yksinkertaisesti saa toimimaan? Tai olisiko jollain kenties jotain neuvoa, miten noista ongelmista pääsisi yli?
VisualC++, siinä toimi SDL. :)
En osaa SDL:stä sanoa, mutta noin yleisesti, SDL ei ole ainut, jolla saa 2D-grafiikkaa. Itse teen 2D:tä Direct3D:llä (DirectX), ja fps on hirmuinen. OpenGL:n pitäisi myös pystyä samaan. Lisäksi, alkuun voi päästä jopa Windowsin BitBlt-funktiolla. Windows-ohjelmia on kuitenkin syytä oppia tekemään, QB on tästä kaukana.
Ilmeisesti yritit suoraan ajaa ohjelmia ilman kääntämistä, joillakin muillakin on todennäköisesti ollut sama ongelma. Painappas ensin sitä compilea. (Dev-cpp) TOisaalta olet voinut valita paketin, jossa ei tule kääntäjää mukana, joka toisaalta on epätodenäköisempää.
Tuo hello wordin kääntämisongelma on aika outo. Tarkista nyt vielä että olet ladannut version, jossa tulee kääntäjä mukana (Dev-C++ kun ei ole kääntäjä vaan IDE, joka oletuksena käyttää MinGW:tä. Olet saattanut ottaa paketin, jossa kääntäjää ei ole niin kuin Imuri sanoikin).
Kun käytät SDL:ää, muista myös:
SDL-projektissasi valitse New project-valikosta SDL. En ole Dev-C++:aa juuri SDL:n kanssa käyttänyt, mutta luulisin että se pitää valita.
Muista myös, että SDL:ää käyttävän exe:n kanssa samassa kansiossa on oltava SDL.dll (ellet ole kopioinut sitä Windows\System32-kansioon).
Toki VisualC++ on hyvä IDE&kääntäjä, mutta se sitten maksaakin (ja wareahan ei tueta... *köh köh*).
Ja jos koneellasi on Linuxi, niin gcc:llä kääntäminen onnistuu helposti, ja KDevelop on hyvä IDE. Tosin gcc:stä on myös Windows-versio, joka tulee (ainakin lähes kaikkien) Dev-C++:n pakettien mukana (juuri tuo edellä mainitsemani MinGW).
Kyllä minä voisin suosittella että voi tehdä suoraan 3D:tä eihä siinä ole kuin 1 akseli enemmän nimittäin Z akseli. Ja etkös ole jo Basicilla sitä kolmedeetä harrastanut ;) . Enkä minäkään ole kuin joskus vilaissut SDL:llää. Aloitin aika nopeasti OpenGL:llä eikä ole mitään valittamista. Olen kyllä DevC++:lla saanut SDL:lliä ja OpenGL:lliä toimimaan mutten kyllä niin hyvin kuin VC++:lla. DevC++:ssa näyttää kyllä väkisin väännetyltä ilmaisversiolta jolta se kyllä vaikuttaakin kuin lähes jokaisella tuntuu olevan jokin sortin ongelmia (minullakin oli ja heitin järveen).
3D:ssä on sellainen huono puoli, että jos haluaa ihan oikeaa grafiikkaa, niin 3D:n käsittely on vaikeampaa, eikä kunnon mallinnusohjelmia kasva ihan joka oksalla. On paljon helpompaa aloittaa 2D:stä. Sitä paitsi, jos tekee strategiapelin, niin niissä harvemmin on 3D-grafiikkaa (esim. Settlers, SC, AOE). Ohjelmoinnillisesti homma muuttuu hyvin vähän; suurimmat muutokset tulevat juuri grafiikkapuolelle.
Metabolix kirjoitti:
VisualC++, siinä toimi SDL. :)
Epäilemättä VisualC++ olisi hyvä valinta, näin olen kuullut. Sitä minulla ei vain ikävä kyllä ole, ja kun se SDL kerran muillakin pitäisi onnistua...
Ilmuri kirjoitti:
lmeisesti yritit suoraan ajaa ohjelmia ilman kääntämistä, joillakin muillakin on todennäköisesti ollut sama ongelma. Painappas ensin sitä compilea. (Dev-cpp) TOisaalta olet voinut valita paketin, jossa ei tule kääntäjää mukana, joka toisaalta on epätodenäköisempää.
Olen kokeillut painaa nappeja missä järjestyksessä vain onnistumatta. DevCpp antaa ymmärtää, että käytössä on G++ (tämä on ilmeisesti kääntäjä?) Olen ladannut jo aika monta eri versiota ohjelmointiympäristöistä ja kääntäjistä, eikä yhdelläkään ole toiminut, joten voisitteko antaa linkin jollekin sivulle, josta varmasti löytyy oikeanlainen. Jos vain googletan, en todennäköisesti pysty päättelemään, mitä tulisi ladata, kun jonkin kääntäjänkin kotisivuilla on satoja ladattavia paketteja.
Metabolix kirjoitti:
En osaa SDL:stä sanoa, mutta noin yleisesti, SDL ei ole ainut, jolla saa 2D-grafiikkaa. Itse teen 2D:tä Direct3D:llä (DirectX), ja fps on hirmuinen. OpenGL:n pitäisi myös pystyä samaan.
Pystyyhän sillä toki 2D:täkin tekemään, mutta kun ensin haluaisin saada edes kelvollisen kääntäjän toimimaan, ja sitä VC++:aa ei siis ole.
Dev-C++:n lataussivu kirjoitti:
Dev-C++ 5.0 beta 9 (4.9.9.0) (7.6 MB) with Mingw/GCC 3.3.1
Dev-C++ version 4.9.9.0, includes full Mingw compiler system (GCC 3.3.1) and GDB 5.2.1 See NEWS.txt for changes in this release.
Download from:
Download
Tuon pitäisi kaiken järjen mukaan toimia. En nyt ryhdy buuttailemaan Windowssiin tuon takia, mutta jos tuo ei toimi niin ihme.
Tämä on kai hyödytön vastaus, mutta sanonpa vaan tähän väliin että minullakin on huonoa kokemusta C/C++ kääntäjistä. Itse aloitin ohjelmoinnin C++:alla mutta en onnistunut löytämään kunnollista kääntäjää. Tuo Hello World ongelma DevC++:alla on tuttu minullekin. Niinpä vaihdoin lopulta Basiciin... Ihan vain paskojen kääntäjien takia... Nyt olenkin sitten alkanut tutkiskelemaan että josko tuosta Pascalista olisi johonkin...
Minullakin oli Hello Worldin kanssa ongelmia (VC++ 6)... Jos muokkasin vähäsen sitä esimerkkikoodia jonka VC++ osaa generoida, se ei toiminut... Jos tein itse ohjelman ja kopioin esimerkkiohjelmasta toimivan koodin, ei ohjelmani toiminut... Sitten tein kirjan mukaan ja se toimi. Sitten latasin DirectX 8.1 SDK:n ja sen tutojen kanssa rupesin koodaamaan. =).
Minulla taas ei ole koskaan ollut ongelmia minkään C- tai C++-kääntäjän kanssa; hassua, eikö :-) Ja niitä on kuitenkin tullut kokeiltua melko monia.
Hunajavohveli: mihin hakemistoon asensit Dev-C++:n?
gcc:llä kääntyy ainaki mulla SDL-jutskat ihan näin: gcc homo.c -o homo -lSDL
Heikki kirjoitti:
Tuon pitäisi kaiken järjen mukaan toimia. En nyt ryhdy buuttailemaan Windowssiin tuon takia, mutta jos tuo ei toimi niin ihme.
No ihme on sitten tapahtunut, sillä samaa virhettä pukkaa: "Unable to run program file"
Tämmöinen teksti tulee Compile Logiin:
Compiler: Default compiler Executing g++.exe... g++.exe "C:\Backups\kustaa\koodaus\Dev-Cpp\koodit\hellowrl.cpp" -o "C:\Backups\kustaa\koodaus\Dev-Cpp\koodit\hellowrl.exe" -I"C:\Backups\kustaa\koodaus\Dev-Cpp\include\c++" -I"C:\Backups\kustaa\koodaus\Dev-Cpp\include\c++\mingw32" -I"C:\Backups\kustaa\koodaus\Dev-Cpp\include\c++\backward" -I"C:\Backups\kustaa\koodaus\Dev-Cpp\include" -L"C:\Backups\kustaa\koodaus\Dev-Cpp\lib" Execution terminated
Fawkz: Kuten tuosta Compile Logista näkyy: "C:\Backups\kustaa\koodaus\Dev-Cpp"
Onko hakemistolla sitten jotain merkitystä? Ainakaan en asentanut edellisen kääntäjän päälle, niinkuin neuvottiin, vaan jo muun neljän DevCpp:n rinnalle. :)
Kokeile piruillesasi asentaa hakemistoon "C:\Dev-C++", silloin voidaan ainakin sulkea tuo mahdollisuus pois :) Ainakin joidenkin hakemistopolkujen kanssa Dev-C++:lla *on* vaikeuksia.
Eipä auttanut sekään. Aina vain tulee sama virheilmoitus. :(
Itselläni on silloin tällöin Dev-C++ kieltäytynyt kääntämästä mitään ohjelmaa sen jälkeen, kun jokin käännetty ohjelma on kerran tiltannut (yrittänyt suorittaa laittoman toiminnon tms). Koneen uudelleenkäynnistys on auttanut tähän ongelmaan. Tuskinpa tuossa kuitenkaan on sama asia kysymyksessä, mutta eihän sitä koskaa tiedä.
Kokeilin Dev-c++ viitosta tuossa pahuuttani en kyllä jaksanut saada toimimaan ainakaan enää sen jälkeen kun huomasin että kaikkia tiedostoja ei ollut edes oikeilla paikoilla ja jotain jopa puuttui. Ensin se ei edes alkanut vääntämään exeä. Mutta kun älysin addata ne directoreja project- ja compiler optionseista se alkoi niin tekeemään mutta nyt yhden errorin sijasta tuli 44 erroria Dev-c++:n mukana tulleesta Hello World
esimerkista mutta sekin johtui ilmeisesti tiedostojen puuttumisesta. Mutta koita addata sinne niitä directoreita kohdalleen ainakin minulla auttoi johonkin suuntaan. ( Huom! Mingw32 kansiostakin löytyy ainakin vielä yhdet binit ja libit).
rndprogy:n kertomaa kannattaa kokeilla. Toinen mahdollisuus on asentaa Dev-C++ puhtaalta pyödältä.
Googletin kerran ja varmistuin että nämä samat ohjeet löytyvät FAQ:sta:
http://www14.brinkster.com/aditsu/dev-cpp-faq.html#runfile
[offtopic]Jostakin syystä juuri tämä aihe lisää Firefoxiin scrollbarin, ja sivun leveys on noin kolminkertainen. Mitä ihmettä?[/offtopic]
Jopa koulun koneessa toimi uusin Dev-C++ työpöydälle asennettuna. Teki ainakin exen; en tiedä johtuiko ohjelmani toimimattomuus sitten Dev-C++:sta vaiko virusohjelmasta, kun sisältö oli tämä:
#include <memory> int main() { while (malloc(1024 * 1024)) malloc(1024 * 1024); // Mega kerrallaan while (malloc(1024)) malloc(1024); // Kilo kerrallaan while (malloc(1)) malloc(1); // Tavu kerrallaan return 0; }
Metabolix kirjoitti:
[offtopic]Jostakin syystä juuri tämä aihe lisää Firefoxiin scrollbarin, ja sivun leveys on noin kolminkertainen. Mitä ihmettä?[/offtopic]
hunajavohvelilla on liian pitkä rivi koodi-tagissa tuossa pari viestiä ylöspäin. Firefox ei yritä hajottaa sitä useille riveille kuten ainakin IE.
Joo, Opera ainakin osaa myös pätkiä useammalle riville.
Niin, mitenkä niitä directoreja pitäisi siis lisäillä, ja mistä? Voin ihan suoraan sanoa olevani aika pihalla koko hommasta, kun en ole juuri koskaan mitään kääntäjän asetuksia säädellyt.
Kyllä siellä valikkoja piisaa. Otat Compiler options ja tutkit sieltä. Jos näet vaikka jonkun include kohdan niin valitset sieltä kansion josta include tiedostot haetaan. Samat libille ja binille. ja project optionsista sama homma. Ja tottakai asetukset pitää paikalleen säätää että toimii.
Hunajavohveli: Katsoitko linkkiäni FAQ:iin? Siinä on pari kohtaa asetuksista mainittu (noita muistaakseni olen itsekin säätänyt).
Jos et saa tuota toimimaan, siinä on myös ohjeet poistamiseen jälkiä jättämättä, niin että myös configuraatiotiedostot poistetaan, jonka jälkeen voit asentaa ohjelman puhtaalta pyödältä.
Olen minä noita lukenut, muttei ole auttanut. Joko en ole ymmärtänyt jotain, mitä tuossa käsketään tehdä, tai sitten ne eivät muuten vain toimi.
Warettamalla (alan olla jo aika epätoivoinen) onnistuin saamaan VC++ kutosen, jossa ei ilmeisesti ollut ohjelmointiympäristöä(?) ja kiinankielisen Visual Studion. (kukaan ei varmaankaan ole eri mieltä siitä, että kaikki on selvästi minua vastaan)
Mikä estää kävelemästä kirjastoon ja lainaamaan kirjan jossa tulee mukana 60 päivän trial versio visualista. Sillä pääset alkuun ja voit sitten sinä aikana hankkia koko version jollain muulla tavalla, eli ostamalla. ;)
Ainakin kirjassa "Microsoft .NET ohjelmointi" tulee mukana Visual Studio .NETin trial
Eikös tuota VC++:aa ilman IDEä, ts. pelkällä kääntäjällä, jaeta ihan ilmaiseksi Microsoftin sivuilla? Lisäksi koko Vistual Studion Trial-versio maksaa muistaakseni $4.95.
Ihmettelen kyllä tuota Devin toimimattomuutta. Itselläni ei ole koskaan ollut ongelmia, ja on se tullut aika monta kertaa asennettua milloin minnekin ja kaikkina versioina. Jos käyttää MingW:tä kääntäjänä, niin toimii yleensä paremmin. Sehän siinä tulee oletuksena mukana.
Metabolix kirjoitti:
Eikös tuota VC++:aa ilman IDEä, ts. pelkällä kääntäjällä, jaeta ihan ilmaiseksi Microsoftin sivuilla?
Jooh, .NET-kääntäjän sai minustakin ilmaiseksi. Siitä on ollu puhetta täällä joskus, haulla varmasti löytyy.
Metabolix kirjoitti:
[offtopic]Jostakin syystä juuri tämä aihe lisää Firefoxiin scrollbarin, ja sivun leveys on noin kolminkertainen. Mitä ihmettä?[/offtopic]
Jopa koulun koneessa toimi uusin Dev-C++ työpöydälle asennettuna. Teki ainakin exen; en tiedä johtuiko ohjelmani toimimattomuus sitten Dev-C++:sta vaiko virusohjelmasta, kun sisältö oli tämä:
#include <memory> int main() { while (malloc(1024 * 1024)) malloc(1024 * 1024); // Mega kerrallaan while (malloc(1024)) malloc(1024); // Kilo kerrallaan while (malloc(1)) malloc(1); // Tavu kerrallaan return 0; }
Missäs päin Espoota Metabolix oikein käy koulua? Meidän koulussa oli joku dev-c++:san asentanut koneelle...
lainaus:
Missäs päin Espoota -
Tapiolassa... Vaikka eiköhän se DevC++ löydy muualtakin.
Metabolix kirjoitti:
jollain muulla tavalla, eli ostamalla. ;)
Enpä taida viitsiä ostaa, kun kerran on olemassa ilmaisiakin, jotka toimivat ihan hyvin, sitten kun toimivat.
SharpDevelop on ilmainen .NET-kääntäjä, siis jos oikein käsitin. C++.NET, C#.
Metabolix kirjoitti:
lainaus:
Missäs päin Espoota -
Tapiolassa... Vaikka eiköhän se DevC++ löydy muualtakin.
Woot! Millä luokalla?
9B:llä. Missä sä?
Kasil
EDIT: Etkai vaan oo sattunu koodaamaan pascalilla hirsipuupeliä?
Kyllä, olen sattunut, vaikka se kyllä kuuluu osastoon "ensimmäiset ohjelmat", eli sitä ei pidä ottaa vakavasti... Milles koneelle se on päässyt jäämään? Ja siihen Dev-C++:aan on teknisenmaikan lupa, joten siitä on turha valittaa. Mutta en siis ole yksin suuressa koulussamme, joku muukin osaa koodata edes pikkuisen (näköjään jopa WinAPI-tasoisesti). Vie ihmeessä teknisenmaikalle jotain, se tykkää hienoista ohjelmista.
Ei se dev-c++ ketään haittaa siinä koneella. Hyvä vaan, että on jos joskus tulee hirvee hinku koodata teknisentunnilla. :D
Kerran sitä hirsipuuta muistaakseni esittelit tt-luokassa (sillon kun sinne ruokavälkällä pääsee) jollekin kaverilles ja mä kauempaa kuulin... Eikös siinä ollut joku rovio sen hirsipuun tilalle? :D
EDIT: Oot muuten eka tyyppi joka on koskaan tullut vastaan (siis niinku että olisin nähnyt kyseisen henkilön) joka harrastaa koodausta. EN tiennytkään että meiän koulusta löytyy koodaustakin harrastavaa porukkaa. :o
Tupla EDIT: Täytyyki näyttää "höylälle" jotain koodaus tuotoksiani... Jahka saan Kalenterin(c) valmiiksi. :)
hunajavohveli kirjoitti:
Eipä auttanut sekään. Aina vain tulee sama virheilmoitus. :(
Onko sulla lisättynä Dev-C++:ssa
Tools/Compiler options menuusta "add these commands to the linker command line" -kohtaan:
-lmingw32 -lSDLmain -lSDL
muistaakseni juuri SDL:n takia tuo piti lisätä.
Kokeilin lisätä, ja tämän jälkeen kun painan OK, se sanoo "You have not indicated the location of your binaries (compiler). Please do so now", jotenka mitenkä tuo sitten tehdään? En ole muuten edes vielä asentanut koko SDL:ää, kun edes kääntäjä ei toimi.
Ai ei löydä binaarejä edes? Siellä se on samassa paikkaa directories välilehdessä. Pitikös nämäkin itse asentaa? Että ohjelma ei binaareja asentaessaan osannut kertoa itselleen mihin ne asensi?
petterik kirjoitti:
Pitikös nämäkin itse asentaa? Että ohjelma ei binaareja asentaessaan osannut kertoa itselleen mihin ne asensi?
No siltä tämä vähän vaikuttaa. Aika omituista, jos minulta kysytään. Jooh, on siellä tuollainen Directories-välilehti, ja siitä aukeaa sitten neljä uutta välilehteä "Binaries", "Libraries", "C Includes" ja "C++ Includes". Valitsen "Binaries"-välilehden ja se näyttää tyhjän listan. Mitenkä tuohon nyt sitten saa lisättyä niitä?
Heikki kirjoitti:
Dev-C++:n lataussivu kirjoitti:
Dev-C++ 5.0 beta 9 (4.9.9.0) (7.6 MB) with Mingw/GCC 3.3.1
Dev-C++ version 4.9.9.0, includes full Mingw compiler system (GCC 3.3.1) and GDB 5.2.1 See NEWS.txt for changes in this release.
Download from:
DownloadTuon pitäisi kaiken järjen mukaan toimia. En nyt ryhdy buuttailemaan Windowssiin tuon takia, mutta jos tuo ei toimi niin ihme.
Latasin täsmälleen tuon paketin. Mahtaako tuossa nyt sitten olla kääntäjä mukana?
Edit: Ainakin tuossa mainostetaan, että mukana on mingw/gcc.
Jos ei D:\ohjelmointi\Dev-Cpp\bin tai vastaavasta hakemistosta löydy edes gcc.exe tiedostoa, niin lataa uusi paketti jossa on kääntäjä ja aloita homma alusta.
Kyllä sieltä löytyy, mutta en vain käsitä, miten nuo sitten liitetään mukaan, kun melkein kaikilla on toiminut ihan suoraan ilman tuollaista säätämistä.
painat sitä kellertävää hakemisto kuvaketta...
No kappas vain, onnistuin lisäämään sinne bin-kansion, ja tuo mokoma alkoi kaiken jälkeen vihdoinkin toimia! :)
Kiitokset kaikille auttaneille. Saas nähdä, pääsisinkö viimeinkin koodamaan SDL:llä...
Voipi olla että joudut lisäämään bin hakemistoksi myös
D:\ohjelmointi\Dev-Cpp\lib\gcc-lib\mingw32\3.3.1
jos ei jo ole.
Aihe on jo aika vanha, joten et voi enää vastata siihen.