Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: sdl_gfx ei toimi

Sivun loppuun

HellRazor [19.04.2007 20:42:37]

#

Aloitin juuri c ja sdl ohjelmoinnin ja minulla on vaikeuksia saada sdl_gfx toimimaan. sdl:n perus jutut toimii moitteettomasti, mutta tuo lisäkirjastojen käyttäminen on hakusessa. Voisiko joku kertoa juurtajaksaen miten saan tuon sdl_gfx:n toimimaan ohjelmassani. Etenkin rotozoomin käyttöä tarvitsisin. Käytän dev c++:aa.

Saan tälläisen virheilmoituksen:
`SDL_rotozoomSurface' undeclared (first use this function)

Ja älkääkä laittako linkkejä tuohon oppaaseen, sillä se ei auttanut minua. Ja olen googlettanut, mutta en ole löytänyt tarpeeksi yksityiskohtaista tietoa.

Metabolix [19.04.2007 21:14:04]

#

Includen avulla kääntäjä tietää, että nuo funktiot ovat olemassa, linkkeriparametria tarvitaan, että ne tulevat oikeasti ohjelmaan mukaankin.

Ohjelmakoodin alkuun siis kuuluu jokseenkin tällainen rivi:

#include <SDL/SDL_rotozoom.h>

Lisäksi projektin asetuksista Linker parameters -laatikosta tai vastaavasta puuttuu oikea asetus, luultavimmin -lSDL_gfx, joka siis linkittää ohjelmaan tuon kirjaston mukaan.

HellRazor [19.04.2007 21:29:36]

#

Tuo include minulla olikin jo, mutta samaa erroria pukkaa vieläkin.

Metabolix [19.04.2007 21:52:37]

#

Hm jaa, funktion nimessä ei ole tuota SDL_-etuliitettä.

HellRazor [19.04.2007 22:12:39]

#

Kappas vain. Ongelmat eivät ole vieläkään ohi vaan sain vastaani jo seuraavan errorin:
[Linker error] undefined reference to `_imp__rotozoomSurface'
Alkaa mennä jo vähän käsittämättömäksi.

tgunner [19.04.2007 22:39:00]

#

Linkkaa ohjelmaan -lmingw32 -lsdlmain -lsdl -lsdl_gfx

HellRazor [19.04.2007 22:48:02]

#

Linkkasin noin ja lisäsin myös dll tiedoston siihen, mutta en ole aivan varma kuuluuko se sinne. Jossain foorumilla näin jonkun .o tiedoston lisättynä sinne, mutta sellaista en omista. Nyt kuitenkin ohjelma kääntyy, mutta kun yritän käynnistää ohjelman saan tälläisen virheilmoituksen:
Sovelluksen alustus epäonnistui (0xc000007b). Lopeta sovellus valitsemalla OK.

Metabolix [20.04.2007 20:58:40]

#

DLL-tiedoston kuuluu vain olla ohjelman ajokansiossa (tai muualla PATHissa), jotta Windows sen löytää. Sitä siis ei erityisesti liitetä projektiin. Objektitiedostoa (.o:ta) ei kuulukaan olla.

HellRazor [22.04.2007 18:16:06]

#

[Linker error] undefined reference to `_imp__rotozoomSurface'
Tuota erroria puskee silti, vaikka tein tuon TGunnerin ohjeen mukaan. Ja dll tiedostot ovat oikeassa paikassa.

tgunner [22.04.2007 18:20:10]

#

Onks sulla libSDL_gfx.a oikeessa paikassa?

HellRazor [22.04.2007 18:21:11]

#

Niin, paha sanoa koska en tiedä mikä on oikea paikka.

tgunner [22.04.2007 21:37:12]

#

Varmaan toisten .a-kavereiden pariin. Kokeile lib-kansioo :-o

HellRazor [22.04.2007 21:52:28]

#

Juu siellä se näyttää olevan.

tgunner [22.04.2007 22:08:24]

#

Käys ny uusiks läpi, et miten teet käännösprosessin. Sulla on koodi, siinä oikeet includet ja varmasti käytät oikeeta rotozuumeri-funkkarii? Sit sä meet komentoriville ja käännät: gcc -s -o2 -o ulos.exe sisaan.c -lmingw32 -lsdlmain -lsdl -lsdl_gfx ja se sanoo...?

HellRazor [22.04.2007 22:18:06]

#

Samaa erroria ryskii.

tgunner [22.04.2007 22:43:11]

#

Sä teet nyt jotain väärin! Ootko kokeillu kääntää sen sdl_gfx:n devpakin mukana tulevaa esimerkkikoodia, mikä sisältää ton rotozoomerin käytön?

HellRazor [23.04.2007 13:41:21]

#

Sain toimimaan vihdoin ja viimein! Poistin koko roskan ja asensin kaiken uusiksi ja lähti toimimaan. En kyllä itsekään tiedä missä kohtaa olin tehnyt virheen, mutta pääasia, että toimii! Kiitos kaikille avuliaille, jotka jaksoivat miettiä ongelmaani.


Sivun alkuun

Vastaus

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

Tietoa sivustosta