SDL-newbie problem



  • ist wenigstens mein compiling-ansatz richtig?

    ich habe wie gesagt:

    -mingw und msys sowie gcc etc installiert.
    -die .h-includes von sdl und sdl_image nach C:\mingw\include kopiert.
    -msys gestartet
    -in den projektordner gewechselt
    -"gcc sdl01.c" eingegeben...



  • hi,

    ich hab zwar nichts direkt zum thema, aber was meint ihr:
    -wie schnell kann man SDL lernen, bzw so dass man ein einfaches 2d - moorhuhn-spiel programmieren kann??
    -ist es überhaup zu empfehlen wenn mann im Borland c++ Builder nich nicht allzuviele erfahrungen hat (hab bis jeztt in der schule fast nur console programmiert.

    und falls jemand schon so ein ahnliches spiel programmiert hat wäre es nett wennn er sich mal melden könnte.

    thx johony



  • @loki85:

    Probier mal "int main(int argc, char *argv[])" anstatt "int main()". Bei mir meckert der Compiler (Windows, VC++) auch immer, wenn ich versuche, ein SDL-Programm zu übersetzen, und nur "main()" schreibe.



  • johony schrieb:

    ich hab zwar nichts direkt zum thema, aber was meint ihr:
    -wie schnell kann man SDL lernen,

    Das geht IMHO recht schnell. In ein paar tagen müsstest du die Grundlagen draufhaben. Benutze die Doku.

    johony schrieb:

    so dass man ein einfaches 2d - moorhuhn-spiel programmieren kann??

    Kommt drauf an, wie gut du C/C++ coden kannst. wenn du SDL drauf hast, die Doku verwenden kannst, google kennst, die Suchfunktion nutzen kannst und ungefähr eine Ahnung hast wie du das Spiel aufbaust dann geht auch das recht schnell.

    johony schrieb:

    -ist es überhaup zu empfehlen wenn mann im Borland c++ Builder nich nicht allzuviele erfahrungen hat (hab bis jeztt in der schule fast nur console programmiert.

    Verstehe ich jetzt nicht was du da meinst. Ich glaube du verwechselst da was. (SDL hat nix mit Windowsprogrammierung zu tun). SDL kannst du auch in Konsolen-Anwendungen benutzen.



  • jetzt gibt er mir folgenden output:

    $ gcc sdl01.c
    C:/DOKUME~1/.../LOKALE~1/Temp/cc6naaaa.o(.text+0xfa):sdl01.c: undefined reference to `SDL_Init'
    C:/DOKUME~1/.../LOKALE~1/Temp/cc6naaaa.o(.text+0x103):sdl01.c: undefined reference to `SDL_GetError'
    C:/DOKUME~1/.../LOKALE~1/Temp/cc6naaaa.o(.text+0x132):sdl01.c: undefined reference to `SDL_Quit'
    C:/DOKUME~1/.../LOKALE~1/Temp/cc6naaaa.o(.text+0x15b):sdl01.c: undefined reference to `SDL_SetVideoMode'
    C:/DOKUME~1/.../LOKALE~1/Temp/cc6naaaa.o(.text+0x169):sdl01.c: undefined reference to `SDL_GetError'
    C:/DOKUME~1/.../LOKALE~1/Temp/cc6naaaa.o(.text+0x19d):sdl01.c: undefined reference to `IMG_Load'
    C:/DOKUME~1/.../LOKALE~1/Temp/cc6naaaa.o(.text+0x1ab):sdl01.c: undefined reference to `SDL_GetError'
    C:/DOKUME~1/.../LOKALE~1/Temp/cc6naaaa.o(.text+0x27b):sdl01.c: undefined reference to `SDL_UpperBlit'
    C:/DOKUME~1/.../LOKALE~1/Temp/cc6naaaa.o(.text+0x295):sdl01.c: undefined reference to `SDL_UpdateRects'
    C:/DOKUME~1/.../LOKALE~1/Temp/cc6naaaa.o(.text+0x2a1):sdl01.c: undefined reference to `SDL_Delay'
    C:/DOKUME~1/.../LOKALE~1/Temp/cc6naaaa.o(.text+0x2ac):sdl01.c: undefined reference to `SDL_FreeSurface'
    /mingw/lib/libmingw32.a(main.o)(.text+0x97):main.c: undefined reference to `WinMain@16'
    

    sieht aus, als hätte ich die SDL-library falsch eingebunden. aber wieso falsch?



  • Hm, linkst Du die Library denn überhaupt mit? Beim gcc musst Du die Bibliotheken doch (soweit ich mich erinnere...) explizit mit -l angeben. Oder hast Du irgendwo anders entsprechende Compiler-Flags gesetzt?



  • Hast du überhaupt ein Konsolenprojekt angelegt?



  • jo, jetzt wirds kompliziert...

    also: ich habe kein makefile, und die flags kann ich ja (IMHO) nur im makefile angeben, oder? (wie gesagt, ich habe mehr oder weniger keine ahnung vom make etc...)
    kann ich die library auch als commandline im MSYS angeben?

    und wie soll ich unter MSYS/MinGW ein konsolenprojekt anlegen?

    und nochwas: welche endung hat die library eigentlich? klar, die includes sind .h
    aber die lib? dll? oder auch .h? oder .lib oder sogar .obj
    ??????

    plz help the n00b!!!!

    😉



  • loki1985 schrieb:

    und wie soll ich unter MSYS/MinGW ein konsolenprojekt anlegen?

    Musst du, soweit ich weiss, nicht.

    loki1985 schrieb:

    und nochwas: welche endung hat die library eigentlich? klar, die includes sind .h
    aber die lib? dll? oder auch .h? oder .lib oder sogar .obj
    ??????

    Ich glaub .a oder .o oder so. 😉

    Ich würde dir empfehlen devc++ zu nehmen. 😉 Das ist 'ne kostenlose IDE für mingw und da ist das irgentwie einfacher (man muss sich nur das SDL Package downloaden und dann ein neues SDL Projekt erstellen).



  • @loki:

    Du solltest Flags auch auf der Kommandozeile angeben können. Probier mal das:

    gcc sdl01.c -lSDLmain -lSDL
    

    Das müsste, soweit alles richtig installiert ist, eigentlich funktionieren. Ansonsten wird er sich wohl beschweren, dass er nicht weiss, was SDL und SDLmain sein sollen.

    Edit: Vielleicht hilft Dir auch diese Seite weiter (bin gerade darüber gestolpert): http://www.spacejack.org/games/mingw/mingw-sdl.html. Da wird u.a. auf das Problem mit "WinMain@16" eingegangen.



  • Saugie schrieb:

    Ich würde dir empfehlen devc++ zu nehmen. 😉 Das ist 'ne kostenlose IDE für mingw und da ist das irgentwie einfacher (man muss sich nur das SDL Package downloaden und dann ein neues SDL Projekt erstellen).

    ok, habe mir devc++ gesaugt, und installiert...

    habe mir das sdl-"devpak" gezogen und einfach mal in den ordner "DevPaks" verschoben. richtig so?
    danach habe ich alle .h-file aus der SDL-library/include nach devc++/include kopiert. soweit richtig?

    nur finde ich unter den templates nirgends ein "SDL template"... 😞

    ???

    hilfe!



  • @loki
    ich würde dir vom devpack abraten, soweit ich weis gibt es nur mit der version 1.2.4 und die aktuelle version ist 1.2.7 http://www.libsdl.org/download-1.2.php
    und für die paar zeilen brauchst du kein template http://www.libsdl.org/intro.de/usinginit.html
    http://www.libsdl.org/intro.de/usingvideo.html



  • okay, ich habe durch das autoupdate nach laden einer neuen serverliste das DevPak bekommen, und habe das template kompiliert. funktioniert!

    ich denke ich werde jetzt, wo ich gesehen habe, dass die installation von SDL scheinbar doch möglich ist, intensiv SDL lernen...

    vielen dank an alle für die hilfe! 🙂

    nur noch eins: kann mir jemand vielleicht noch die exakten schritte der installation von SDL für mingw posten?

    wäre super, damit ich meine probleme in zukunft selber lösen kann...

    big thanx,

    ---loki



  • @asgard: supi! die page hat mein problem behoben! jetzt kann ich mit SDL auch unter mingw was anfangen! vielen dank!!!
    🙂



  • kann mir jemand sagen, wie ich SDL statisch in eine exe linken kann??? (per commandline in MSYS!)
    ich weiss, die meisten von euch halten davon nix, aber ich will das mal ausprobieren...


Anmelden zum Antworten