11
Aug
09

SDL unter Mac OS X

SDL Logo

Entwickeln mit SDL unter Linux mit C++ ist relativ einfach. Nur kurz über den Paketmanager die Entwicklungs-Bibliotheken installieren und loslegen. Unter Mac OS X kann man jedoch auf Schwierigkeiten stossen, was vorallem für SDL-Neulinge frustrierend sein kann. Deshalb hier eine kurze Anleitung zum Loslegen:

SDL herunterladen und installieren

SDL lässt sich im Downloadbereich der offziellen Website libsdl.org herunterladen. Unter Runtime Libraries findet sich dort für Mac OS X SDL-1.2.13.dmg. Möglicherweise ist inzwischen bereits eine aktuellere Version verfügbar. In der DMG-Datei befinden sich zwei Ordner, SDL.framework und devel-lite. Nun devel-lite einfach in SDL.framework verschieben und diesen Ordner nach /Library/Frameworks/ kopieren. Es gehört vermutlich nicht zur „best practice“ devel-lite in den SDL.framework Ordner zu kopieren, aber dadurch habe ich den Ordner an einem zentralen Ort, was für mich die Entwicklung etwas vereinfacht.

Ein einfaches Beispiel im Terminal erstellen und kompilieren

Nano - test.cpp In einem Terminal erstellen wir mit mkdir an einem passenden Ort einen neuen Ordner und legen darin mit nano eine neue C++ Datei an.

$ mkdir test
$ cd test
$ nano -w test.cpp

In diese Datei schreiben wir folgenden Inhalt:

#include "SDL/SDL.h"

int main(int argc, char* args[]) {
    SDL_Init(SDL_INIT_EVERYTHING);
    SDL_Quit();

    return 0;
}

Dieses Programm initialisiert SDL und beendet es auch gleich wieder. Im wesentlichen passiert also garnichts. Dennoch wollen wir dieses  Programm verwenden um unsere SDL-Installation zu testen. Nachdem wir die Datei gespeichert und nano beendet haben (Strg+O, Strg+X) verwenden wir folgenden g++-Aufruf um das Programm zu kompilieren:

$ g++ -I/Library/Frameworks/SDL.framework/Headers -framework SDL -framework Cocoa /Library/Frameworks/SDL.framework/devel-lite/SDLMain.m -o test test.cpp

Wir beachten bei diesem Aufruf, wass wir nicht g++ nicht nur den Ort zu den SDL-Header-Dateien angeben und anweisen sowohl das SDL- als auch Cocoa-Framework zu benutzen, sondern auch die Datei SDLMain.m aus dem devel-lite Ordner mitkompilieren. Bei dieser Datei handelt es sich etwas böse gesagt um ein notwendiges Übel bei der Entwicklung mit SDL unter Mac OS X. Solang wir allerdings nicht vergessen diese Datei mitzukompilieren muss uns dies nicht weiter stören. Wenn alles geklappt hat, meldet g++ keinen Fehler und wir finden in unserem Ordner die Anwendung test welche wir über ./test starten können. Damit ist man gerüstet um den verschiedenen Tutorials und Anleitungen im Internet zu folgen.

Einrichten von Netbeans

netbeans

Etwas komfortabler lässt es sich mit einer Entwicklungsumgebung wie zum Beispiel Netbeans arbeiten. Das neueste Netbeans C/C++ Paket kann man über die Downloadseite auf netbeans.org herunterladen oder eine bestehende Netbeans-Installation über den Plug-In-Manager nachrüsten. Die Installation ist selbsterklärend. Hat man ein neues Projekt erstellt muss man Netbeans anweisen den g++-Aufruf entsprechend zu ergänzen.

Netbeans - Project Properties

Nach einem Rechtsklick auf sein Projekt wählt man dazu aus dem Kontextmenü Properties und dann unter Categories Linker aus. Bei Additional Options gibt man folgenden Wert ein:

-I/Library/Frameworks/SDL.framework/Headers /Library/Frameworks/SDL.framework/devel-lite/SDLMain.m -framework SDL -framework Cocoa

Um zu testen ob alles geklappt hat, kann man das weiter oben beschriebene Programm verwenden.

Werbung

4 Antworten to “SDL unter Mac OS X”


  1. 1 scyle
    10. September 2009 um 23:55

    Hi, hab die Anleitung hier befolgt und bin auf folgenden Fehler gestoßen:

    ld: warning: in /Library/Frameworks//SDL.framework/SDL, missing required architecture x86_64 in file
    Undefined symbols:
    „_SDL_PushEvent“, referenced from:
    -[SDLApplication terminate:] in ccgq9iXd.o
    „_SDL_Init“, referenced from:
    _SDL_main in ccxq2pO5.o
    „_SDL_Quit“, referenced from:
    _SDL_main in ccxq2pO5.o
    ld: symbol(s) not found
    collect2: ld returned 1 exit status

    Ich benutzte Snow Leopard und habe gelesen das SDL da nicht funktioniert. Gibt es da irgendwie eine möglichkeit das zu beheben? Ich hatte etwas gelesen, dass man SDL 1.3 benutzten kann, habe jedoch keine Anleitung finden können welche erklärt wie man das unter Mac OS X kompiliert (also aus dem SVN Code die Bibliothek erzeugt oder was man dafür braucht). Könntest du dort vielleicht eine Anleitung zu schreiben wenn du dies kannst?

  2. 3 scyle
    15. September 2009 um 22:59

    super, vielen dank für den Beitrag werde es morgen probieren und dann berichten ob ich es hinbekommen habe oder nicht

  3. 4 Ich
    28. Juli 2014 um 19:48

    g++ meint es gibt kein SDL/SDL.h


Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit deinem WordPress.com-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s


August 2009
M D M D F S S
 12
3456789
10111213141516
17181920212223
24252627282930
31  

%d Bloggern gefällt das: