PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SDL.h: Datei oder Verzeichnis nicht gefunden obwohl SDL-devel installiert


thacrazze
2008-11-08, 22:48:26
Hallo,

ich will grad SDL (http://de.wikipedia.org/wiki/Simple_DirectMedia_Layer) lernen, dazu wollt ich das Beispielprogramm von hier kompilieren (http://de.wikibooks.org/wiki/SDL:_Die_erste_SDL-Anwendung)

Aber es kommt ne Fehlermeldung:
first.c:2:17: error: SDL.h: Datei oder Verzeichnis nicht gefunden
first.c: In function ‘main’:
first.c:5: error: ‘SDL_Surface’ undeclared (first use in this function)
first.c:5: error: (Each undeclared identifier is reported only once
first.c:5: error: for each function it appears in.)
first.c:5: error: ‘screen’ undeclared (first use in this function)
first.c:6: error: ‘SDL_INIT_VIDEO’ undeclared (first use in this function)
first.c:7: warning: incompatible implicit declaration of built-in function ‘printf’
first.c:10: error: ‘SDL_Quit’ undeclared (first use in this function)
first.c:11: error: ‘SDL_HWSURFACE’ undeclared (first use in this function)
first.c:13: warning: incompatible implicit declaration of built-in function ‘printf’
Das Paket SDL und SDL-devel habe ich installiert (openSUSE). Was mache ich falch? Hat da einer ne Idee?

thacrazze
2008-11-08, 22:52:06
Ok ich hab im Verzeichnis /usr/include nachgeschaut.

Dort ist die SDL.h im Verzeichnis SDL zu finden.

Jetzt habe ich Zeile 2 wie folgt abgeändert:
#include "SDL/SDL.h"

Es kommt nun folgende Fehlermeldung:
/tmp/ccMaqvZO.o: In function `main':
first.c:(.text+0x19): undefined reference to `SDL_Init'
first.c:(.text+0x23): undefined reference to `SDL_GetError'
first.c:(.text+0x46): undefined reference to `SDL_Quit'
first.c:(.text+0x6f): undefined reference to `SDL_SetVideoMode'
first.c:(.text+0x7d): undefined reference to `SDL_GetError'
first.c:(.text+0xa5): undefined reference to `SDL_Delay'
first.c:(.text+0xaa): undefined reference to `SDL_Quit'
collect2: ld returned 1 exit status

Hat zufällig einer ne Idee was ich machen kann?

Marscel
2008-11-08, 23:13:38
Und du kompilierst ganz sicher mit?
g++ datei.cpp -lSDL

thacrazze
2008-11-08, 23:13:59
Ok hab auf ner englischen Seite gefunden wie mans richtig kompiliert

gcc first.c -o first.c `sdl-config --cflags --libs`

Jetzt klappts :)

thacrazze
2008-11-08, 23:16:08
Und du kompilierst ganz sicher mit?
g++ datei.cpp -lSDL
Ne hab erst ohne das -lSDL kompiliert

Aber es klappt auch so:
gcc first.c -o first `sdl-config --cflags --libs`

Und C++ will ich auch gar nicht, sondern nur C

Trotzdem danke

Gnafoo
2008-11-08, 23:20:13
Ich glaube damit müsste sich auch dein erstes Problem erledigt haben, weil sdl-config auch den Include-Pfad von SDL ausgibt. Aber ganz sicher bin ich mir nicht.

thacrazze
2008-11-08, 23:23:48
Ich glaube damit müsste sich auch dein erstes Problem erledigt haben, weil sdl-config auch den Include-Pfad von SDL ausgibt. Aber ganz sicher bin ich mir nicht.
Ja hab ich auch grade bemerkt, dass man den Pfad von SDL jetzt davor weglassen kann :)

Gast
2008-11-09, 06:01:17
Alternativ könntest du auch die ganzen SDL headerdateien von /usr/lib/SDL nach /usr/lib kopieren.

Das funktioniert dann auch.

thacrazze
2008-11-09, 10:16:21
Alternativ könntest du auch die ganzen SDL headerdateien von /usr/lib/SDL nach /usr/lib kopieren.

Das funktioniert dann auch.
Ne, dass mache ich nicht

Wenn es mal ein Update von dem Paket gibt, stehe ich dumm da

Da hänge ich lieber die Ausgabe von sdlconfig an ;)