Olen nyt tehnyt, niin kuin tuossa SDL-oppaassa neuvotaan ja onnistuin viimeinkin kääntämään projektin ilman kaikenlaisia herjauksia. Oli muuten melkoisen rasittavaa, kun DevCpp:n asennus ei osannut itse vaihtaa asetuksiin oikeita hakemistoja, kun asensin sen uuteen hakemistoon, vaan kaikki piti vaihtaa käsin vanhasta hakemistosta (olisiko tämän voinut tehdä helpomminkin?).
Noh, varsinainen ongelma on nyt kuitenkin se, että vaikka projekti kääntyy ilman virheilmoituksia, main.cpp:tä ei ajeta. Yritin etsiä projektiasetuksista jotain, mistä olisi saanut sen ajettua automaattisesti, kun projekti käännetään ja ajetaan, mutta minkäänlaista ikkunaakaan ei näy ilmaantuvan. Main.cpp:n koodi on sama kuin SDL:n 1. oppaan esimerkkikoodi. Koodin syntaksi kyllä tarkistetaan kääntämisen aikana, sillä se alkoi valittaa, kun tein tahallisen virheen, mutta minkäänlaista ohjelmaa ei käynnisty.
Edit: Suljinpa tuossa välissä DevCpp:n ja kun avasin projektin uudestaan, niin se sai päähänsä ruveta valittamaan kääntämisen yhteydessä siitä, ettei SDL.dll:ää löydy, vaikka viime kerralla se ihan hyvin tuntui löytyvän...
Katsoppas tuleeko projektisi kansioon mitään .exe-tiedostoa kääntäessäsi projektia? Jos ei tule, vika on varmaan jossain linkkerin asetuksissa (et kai valinnut pelkästään yksittäisen tiedoston kääntämistä vaan koko projektin kääntämisen).
Kyllä sinne tulee eka.exe (eka on projektin eli siis .dev-tiedoston nimi, muut projektin tiedostot ovat eri nimillä).
Ja nyt se siis valittaa SDL.dll:n puutteesta, kun yritän ajaa sitä käsin, tai kun DevCpp yrittää itse.
Edit: Sainpa päähäni kopioida tuon SDL.dll:n projektin kansioon, jossa exe on, ja heti alkoi toimia. Tuli se 5 sekunnin odotus jne. Mutta miksi kummassa tuo DevCpp ei osaa itse löytää sitä DLL-kansiosta? Eikö DevPackin asentamisen pitäisi säätää nuo kaikki kohdalleen?
Mikä Dev-cpp:n versio sinulla on? Itselläni on 4.9.9.2 ja kaikki on toiminut lähes täydellisesti.
Minulla on 4.9.9.0 ja senkin pitäisi kaiketi kelvata. Ongelma lienee nyt lähinnä, niin kuin sanoin, että jouduin asentamaan DevCpp:n uudestaan toiseen kansioon, mutta se ei asennuksessa jostain kumman syystä älynnyt vaihtaa asetuksista kaikkia lib-, dll- yms. kansioita uuden asennushakemiston mukaisiksi, vaan jätti vanhan asennushakemiston polut. Jouduin näitä nyt sitten yksitellen vaihtamaan oikeiksi, mutta DLL-kansioon en löytänyt viittausta mistään asetuksista. Mistähän sellainen mahtaisi löytyä?
Laita SDL.dll kansioon Windows\System32 niin DLL-tiedoston ei tarvitse olla samassa kansiossa exen kanssa.
DLL:llä ei ole mitään tekemistä kääntäjän kanssa.
Ok, ajattelin vain, kun DevCpp:llä on kansio nimeltä DLL, että olisiko sekin säädettävissä asetuksista, kun sieltä saa määritettyä hakemistot kaikille libeille, bineille yms.
Se varmaankin johtuu siitä, että dev-c++:an asennusohjelma ei osaa poistaa joitain tiedostoja (mikä lienee syynä). Etsimällä kovalevyltä tiedostoja devcpp.* (muistaakseni :) ja poistamalla ne ennen uudelleen asennusta pitäisi auttaa (siis eihän se enään auta, mutta silloin olisi auttanut).
Tätä osasin jo odottaakin:
Homma toimi ihan mukavasti (päivän verran) ja seuraavana päivänä yritin luoda uutta projektia, mutta sepä rupesikin lykkäämään jokaiseen uuteen projektiin ensimmäiseksi tiedostoksi erästä koodivinkkiä täältä putkasta, mitä olin aiemmin kokeillut. Noh, pyyhin sen joka kerta pois ja kirjoitin oman tilalle. "Helppoa", ajattelin. Ja mitä vielä... Yritin ajaa oman SDL-ohjelmani (joka taatusti oli toimiva, koska se oli sama, mikä aikaisemminkin oli toiminut) ja ikkuna vain vilahti, eikä mitään ehtinyt näkyä. Ja antoihan se SDL virheilmoituksenkin tiedostoon:
Fatal signal: Segmentation Fault (SDL Parachute Deployed)
Eli minusta tuntuu, että olen jälleen kypsä pitämään puoli vuotta taukoa, ennen kuin yritän C:llä mitään uudelleen... mikään ei vain yksinkertaisesti voi toimia riittävän pitkään, kun minä joskus satun jotain sillä yrittämään. DevCpp:nkin asensin pari kertaa uudestaan, mutta aina se vain tuntuu löytävän jostain ne tiedostot ja hakemistopolut, mitä kaiken järjen mukaan ei pitäisi olla enää olemassa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.