SDL Beispielprogramm kompilieren

E

ex-user_4198

Guest
Hallo Leute

Ich hab Probleme ein SDL Beispielprogram zu komilieren. Der Sourcecode sieht so aus:

Code:
#include <stdlib.h>
#include "SDL.h"

int main()
{
    if ( SDL_Init(SDL_INIT_VIDEO) < 0 )
    {
       fprintf(stderr, "SDL konnte nicht initialisiert werden:  %s\n",
         SDL_GetError());
       exit(1);
    }

    atexit(SDL_Quit);
}

Den Code hab ich unter dem Namen sdltest.c gespeichert. Ich benutze FreeBSD 6.2 und hab versucht den Code folgendermasen zu kompilieren:

gcc -Wall `sdl-config --cflags`sdltest.c -o sdltest `sdl-config --libs` -lSDL

Das Kompilieren funktioniert aber leider nicht, bekommen immer folgenden Fehler:

/usr/lib/crt1.o(.text+0x72): In function `_start':
: undefined reference to `main'

Kann mir da jemand weiterhelfen, was da schiefläuft?
Vielen Dank
 
Hier liegt der Teufel im Detail: du hast kein Leerzeichen zwischen dem ` und sdltest.c. Expandiert sieht die Zeile in etwa so aus:
Code:
gcc -Wall -I/usr/local/include/SDL -I/usr/local/include -D_GNU_SOURCE=1 \
-D_REENTRANTsdltest.c -o sdltest -L/usr/local/lib -Wl,-rpath,/usr/local/lib \
-lSDL -pthread -lSDL
Man beachte das verklebte -D_REENTRANTsdltest.c.

Anbei: Die explizite Angabe von -lSDL ist redundant. Ebenso kannst du --cflags --libs in einem Rutsch holen statt zwei Aufrufe an sdl-config zu verwenden. Übrigens solltest du noch stdio.h für fprintf() einbinden. Auch solltest du, wenn du den gcc nicht im C99-Modus betreibst ein "return 0;" am Ende von main() einfügen.
 
Zuletzt bearbeitet:
Zurück
Oben