sdl unter debian

Post Reply
Message
Author
kamome

sdl unter debian

#1 Post by kamome »

Hey Yo Hoh!

Ich habe nun einiges ueber libsdl gelesen und finde alles sehr inter-
essant, hoert sich sehr vernuenftig an. Zudem wuerde mir es die SDL
ermoeglichen, schonmal ein bisschen rumzuspielen, obwohl ich erst ins
Programmieren einsteige. Daher wollte ich nun also mein erstes ("das"
erste sdl-Programm - das eigentlich "noch nix" macht) kompilieren -
doch wenn das funktioniert haette, wuerde ich dies hier wohl nicht
tippen! Im folgenden mein Leidensweg - ich hoffe auf einen freundlich-
en Fingerzeig von jemandem :)

debian(woddy) oder knoppix(3.1, eine japanische pre-version)

Das Programm sdltst.c:

include <stdlib.h>
#include "SDL.h"
// was ist der Unterschied zu <SDL.h>?
// beides versucht - error gleich

int main(int argc, char *argv[])
{
SDL_Surface *screen;
if(SDL_Init(SDL_INIT_VIDEO) == -1)
{
printf("Can't init SDL: %s
", SDL_GetError());
exit(1);
}
atexit(SDL_Quit);
screen = SDL_SetVideoMode(640, 480, 16, SDL_HWSURFACE);
if(screen == NULL)
{
printf("Can't set video mode: %s
", SDL_GetError());
exit(1);
}
SDL_Delay(3000);
return 0;
}

Beim Kompilieren folgender Fehler:
#gcc sdltst.c
sdltst.c:2: SDL.h: No such file or directory

Nun gut, der ist leicht (wenn auch nicht schoen), denke ich mir
und...

1) linke /usr/include/SDL/SDL.h nach /usr/include/SDL.h ...

#gcc sdltst.c
In file included from sdltst.c:2:
/usr/include/SDL.h:33: SDL_main.h: No such file or directory
/usr/include/SDL.h:34: SDL_types.h: No such file or directory
/usr/include/SDL.h:35: SDL_getenv.h: No such file or directory
/usr/include/SDL.h:36: SDL_error.h: No such file or directory
/usr/include/SDL.h:37: SDL_rwops.h: No such file or directory
/usr/include/SDL.h:38: SDL_timer.h: No such file or directory
/usr/include/SDL.h:39: SDL_audio.h: No such file or directory
/usr/include/SDL.h:40: SDL_cdrom.h: No such file or directory
/usr/include/SDL.h:41: SDL_joystick.h: No such file or directory
/usr/include/SDL.h:42: SDL_events.h: No such file or directory
/usr/include/SDL.h:43: SDL_video.h: No such file or directory
/usr/include/SDL.h:44: SDL_byteorder.h: No such file or directory
/usr/include/SDL.h:45: SDL_version.h: No such file or directory
/usr/include/SDL.h:47: begin_code.h: No such file or directory
/usr/include/SDL.h:95: close_code.h: No such file or directory

2) wenn das so ist, lieber den Pfad in Zeile 2 des Programms mit
angeben...

#include "SDL/SDL.h" ...

#gcc sdltst.c
/tmp/ccq8zGpa.o: In function `main':
/tmp/ccq8zGpa.o(.text+0xc): undefined reference to `SDL_Init'
/tmp/ccq8zGpa.o(.text+0x1e): undefined reference to `SDL_GetError'
/tmp/ccq8zGpa.o(.text+0x44): undefined reference to `SDL_Quit'
/tmp/ccq8zGpa.o(.text+0x5f): undefined reference to `SDL_SetVideoMode'
/tmp/ccq8zGpa.o(.text+0x75): undefined reference to `SDL_GetError'
/tmp/ccq8zGpa.o(.text+0x9f): undefined reference to `SDL_Delay'
collect2: ld returned 1 exit status

3) ...oder doch nicht! Dafuer lieber alle 29 in /usr/include/SDL
befindlichen Header nach /usr/include gelinkt - ich bin ja nicht
bloed _lol_ - und nochmal...

#gcc sdltst.c
In file included from sdltst.c:2:
/usr/include/SDL.h:33: SDL_main.h: Too many levels of symbolic links
/usr/include/SDL.h:34: SDL_types.h: Too many levels of symbolic links
/usr/include/SDL.h:35: SDL_getenv.h: Too many levels of symbolic links
/usr/include/SDL.h:36: SDL_error.h: Too many levels of symbolic links
/usr/include/SDL.h:37: SDL_rwops.h: Too many levels of symbolic links
/usr/include/SDL.h:38: SDL_timer.h: Too many levels of symbolic links
/usr/include/SDL.h:39: SDL_audio.h: Too many levels of symbolic links
/usr/include/SDL.h:40: SDL_cdrom.h: Too many levels of symbolic links
/usr/include/SDL.h:41: SDL_joystick.h: Too many levels of symbolic links
/usr/include/SDL.h:42: SDL_events.h: Too many levels of symbolic links
/usr/include/SDL.h:43: SDL_video.h: Too many levels of symbolic links
/usr/include/SDL.h:44: SDL_byteorder.h: Too many levels of symbolic links
/usr/include/SDL.h:45: SDL_version.h: Too many levels of symbolic links
/usr/include/SDL.h:47: begin_code.h: Too many levels of symbolic links
/usr/include/SDL.h:95: close_code.h: Too many levels of symbolic links

Da ich mir nicht vorstellen kann (vorsichtige untertreibung), dass es
unter debian unmoeglich ist, ein SDL-Programm zu schreiben, muss es
wohl an mir liegen ;)
Bitte schenkt mir das kleine Stueck Wissen, das hier noetig ist :)

Vielen Dank

cu
kamome

kamome

Re: sdl unter debian

#2 Post by kamome »

Hey Yo Hoh!

Oh no! Haette auch hier mal vorher suchen sollen:
Nach einigen Wochen (nicht sehr intesiven) Probierens jetzt die Loesung in 2 Minuten! Unter einem Eintrag aus dem letzten Jahr habe ich die Loesung gefunden "gcc sdltst.c `sdl-config --cflags --libs`" und schon laeufts!
Noch zu meiner Verteidigung (wenigstens als Erklaerung):
Im sdl-workshop hatte ich das so aufgefasst, dass der sdl-config-Teil nur bei kdevelop mit angegeben werden muss - naja, hat sich geklaert!

Ich bitte um Verzeihung.

cu
kamome

Post Reply